参考文档:http://blog.csdn.net/wilsonke/article/details/37921571
1、java对象转json格式无非就是可以有两种方式,一种是框架,一种是用一些开源的封装好的json jar包。
首先说下如何利用框架吧,框架本人熟悉的就两种,一种是strtus2,strtus2无非就是将要转化为json的数据,放到我们设置的bean中,然后通过值栈可以自动转化为json格式的数据,springmvc就是利用@ResponseBody这个注解,将数据转化为json,方式同strtus2一样。
2、封装好的json 包,本人接触过的有两个,一个JSONObject,这个坑死了,对于复杂的json bean转化会报错,所以我放弃了,后来改用了阿里巴巴的fastjson,目前这个还没有发现有什么问题,需要的java包一个,
那么我现在简单介绍下他的API把
2、主要的使用入口
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public static final Object parse(String text);
// 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
3、有关类库的一些说明
SerializeWriter:相当于StringBuffer
JSONArray:相当于List<Object>
JSONObject:相当于Map<String, Object>
JSON反序列化没有真正数组,本质类型都是List<Object>
4、fastjson还有很多很高级的特性,比如支持注解、支持全类型序列化,这些都是很好的特性,功能强大,不在本次测试范围。
5、上传自己的几个测试案例
@Test
public void BeanToJson(){
Person p1=new Person();
p1.setId(0);
p1.setName("nike");
String str = JSON.toJSONString(p1);
System.out.println(str);
}
@Test
public void listToJson(){
List <Person>list=new ArrayList<>();
Person p1=new Person();
p1.setId(0);
p1.setName("nike");
Person p2=new Person();
p2.setId(1);
p2.setName("linda");
list.add(p2);
list.add(p1);
String str = JSON.toJSONString(list);
System.out.println(str);
}
@Test
public void mapToJson(){
Map<String, Object> map=new HashMap<String, Object>();
List <Person>list=new ArrayList<>();
Person p1=new Person();
p1.setId(0);
p1.setName("nike");
Person p2=new Person();
p2.setId(1);
p2.setName("linda");
list.add(p2);
list.add(p1);
map.put("list", list);
map.put("total", 1);
String str = JSON.toJSONString(map);
System.out.println(str);
}