第一种方式:Google的Gson
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
示例代码:
Gson gson = new Gson();
int[] ints = {1, 2, 3, 4, 5};
String[] strings = {"abc", "def", "ghi"};
(Serialization)
gson.toJson(ints); ==> prints [1,2,3,4,5]
gson.toJson(strings); ==> prints ["abc", "def", "ghi"]
下载链接:
http://code.google.com/p/google-gson/downloads/list
第二种方式:Flexjson
Flexjson 是一个将 Java 对象转成 JSON 的 类库,是一个深度转换的过程
示例代码:
public String doSomething( Object arg1, ... ) {
Person p = ...load a person...;
JSONSerializer serializer = new JSONSerializer();
return serializer.serialize( p );
}
执行结果:
{ "class": "Person", "name": "William Shakespeare", "birthday": -12802392000000, "nickname": "Bill" }
下载链接:
http://sourceforge.net/projects/flexjson/files/
第三种方式:阿里巴巴的fastjson
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
主要特点:
示例代码:
import com.alibaba.fastjson.JSON;
Group group = new Group();
group.setId(0L);
group.setName("admin");
User guestUser = new User();
guestUser.setId(2L);
guestUser.setName("guest");
User rootUser = new User();
rootUser.setId(3L);
rootUser.setName("root");
group.getUsers().add(guestUser);
group.getUsers().add(rootUser);
String jsonString = JSON.toJSONString(group);
System.out.println(jsonString);
下载链接:
http://code.alibabatech.com/wiki/display/FastJSON/Download
三种方式代码实现如下:
//Google实现
Gson gson = new Gson();
String jsonStr = gson.toJson(student1);
System.out.println(jsonStr);
Student student3 = gson.fromJson(jsonStr, Student.class);
System.out.println(student3);
//Flexjson实现
JSONSerializer serializer = new JSONSerializer();
String jsonStr2 = serializer.serialize(student1);
System.out.println(jsonStr2);
JSONDeserializer<Student> deserializer = new JSONDeserializer<Student>();
Student student2 = deserializer.deserialize(jsonStr2, Student.class);
System.out.println(student2);
//Alibaba实现
String jsonString = JSON.toJSONString(student1);
System.out.println("alibaba json:::"+jsonString);
Student student = JSON.parseObject(jsonString, Student.class);
System.out.println(student);
imports:
import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;
import flexjson.JSONDeserializer;
import flexjson.JSONSerializer;
三种实现方式性能对比:
FlexJson第一快、耗时最低,Google Gson第二快、耗时第二,Alibaba FastJson第三快、耗时最长
所以转换还是用FlexJson性能较好,速度较快。