利用Jackson进行序列化
1. Jackson-2.x系列jar包准备
- jackson-core-2.9.6.jar(核心jar包)
- jackson-annotations-2.9.0.jar(该包提供Json注解支持)
- jackson-databind-2.9.6.jar
也可以直接用maven依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.3</version>
</dependency>
2.把toString后的json字符串转回json
json字符串的一般形式:{“uid”:“zp”,“command”:“OPENMONITOR”,“jsoncmd”:{“command”:“OPENMONITOR”}}
@Test
public void JSONOTest(){
String getmessage = "{\"uid\":\"zp\",\"command\":\"OPENMONITOR\",\"jsoncmd\":{\"command\":\"OPENMONITORTWO\"}}";
JSONObject jsonObject = JSONObject.fromObject(getmessage);// 解析
String uid = jsonObject.getString("uid");
JSONObject jsoncmd = jsonObject.getJSONObject("jsoncmd");
String commandone = jsonObject.getString("command");
String commandtwo = jsoncmd.getString("command");
System.out.println(uid);
System.out.println(commandone);
System.out.println(commandtwo);
}
这里面json里还嵌套着json,当然这并不影响反序列化。并且还能把json内的json(弟中弟)里的值提取出来。
运行后结果如下:
3.把对象封装json
- 直接通过键值对方式封装
JSONObject json = new JSONObject();
json.put("uid",PSS);
json.put("sex",man);
- 把Javabean封装成json
User user = new User();
user.setName("PSS");
user.setSex("man");
JSONObject json = JSONObject.fromObject(user);
- 把多个Javabean封装到一个json里,这里需要用JSONArray (当然也可以先存到List集合先,再json序列化,下一篇博客会写)
Person p1 = new Person("zp", 21, "male");
Person p2 = new Person("lcf", 20, "female");
JSONArray jsonlist = new JSONArray();
jsonlist.add(p1);
jsonlist.add(p2);
System.out.println(jsonlist.toString());
json格式很常用,在线JSON校验格式化工具网站也很有用。
4.参考博客
JSONObject和JSONArray区别及基本用法
Java下利用Jackson进行JSON解析和序列化
JSON详解以及可以把javabean转换成json串的json-lib应用