Json处理主要包括两部分:序列化和反序列化。
序列化就是把Java对象转换为JSON String 或JSON Bytes。反之,反序列化就是把JSON String 或JSON Bytes转换为Java对象。
FastJson是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,由阿里巴巴开源平台发布的,实现对象的字符串化和反转解析的工具类库。
主要特点:
1)快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)
2)强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
3)零依赖(没有依赖其它任何类库除了JDK)
以下为参考资料:
JSON中文文档:http://www.json.org/json-zh.html
示例(Java对象转json String):
User user = new User();
user.setId(1);
user.setName("张三");
String jsonStr = JSON.toJSONString(user);
System.out.println(jsonStr);
输出:{"id":1,"name":"张三"}
JSONObject jsonObject = JSON.parseObject(user.toString());
jsonObject.put("address", "北京");
System.out.println(jsonObject);
输出:{"id":1,"name":"张三","address":"北京"}
User user2 = new User();
user2.setId(2);
user2.setName("李四");
JSONArray jsonArray = JSON.parseArray(userList.toString());
System.out.println(jsonArray);
输出:[{"id":1,"name":"张三"},{"id":2,"name":"李四"}]
for(int i = 0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
jsonObject.put("index",i);
}
System.out.println(jsonArray);
输出:[{"id":1,"name":"张三","index",0},{"id":2,"name":"李四","index":1}]