FASTJSON 2是一个性能极致并且简单易用的Java JSON库。
String text = "{\"name\":\"Tom\",\"age\":18}";
JSONObject data = JSON.parseObject(text);
String text2 = "[{\"name\":\"Tom\",\"age\":18}]";
JSONArray data2 = JSON.parseArray(text2);
String text3 = "{\"name\":\"Tom\",\"age\":18}";
User data3 = JSON.parseObject(text3, User.class);
可以是HashMap,ArrayList,实体类。
序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。
User user = new User();
user.setName("zhangsan");
user.setAge(18);
user.setSex("男");
String text4 = JSON.toJSONString(user);
String text = "{\"name\":\"Tom\",\"age\":18}";
JSONObject data = JSON.parseObject(text);
String name = data.getString("name");
Integer age = data.getInteger("age");
String text = "[2, \"fastjson2\",{\"name\":\"Tom\",\"age\":18}]";
JSONArray array = JSON.parseArray(text);
int id = array.getIntValue(0);
String name = array.getString(1);
JSONObject jsonObject = array.getJSONObject(2);
System.out.println(id);//2
System.out.println(name);//fastjson2
System.out.println(jsonObject.getInteger("age"));//18
String dataJson = "{\"msg\":\"成功导入2条;失败1条;\",\"code\":0,\"data\":[" +
"{\"msg\":\"success\",\"code\":0}," +
"{\"msg\":\"success\",\"code\":0}," +
"{\"msg\":\"xxx不存在\",\"code\":0}],\"type\":\"INFO\"}";
JSONArray data = JSON.parseObject(dataJson).getJSONArray("data");
for (int i = 0; i < data.size(); i++) {
JSONObject jsonObject = data.getJSONObject(i);
Integer codeInt = jsonObject.getInteger("code");
String msg = jsonObject.getString("msg");
System.out.println(codeInt);
System.out.println(msg);
}
JsonPath是一种简单的方法来提取给定JSON文档的部分内容。相当于在JavaScript对象中获取属性值
String text = "{\"name\":\"Tom\",\"age\":18}";
JSONObject data = JSON.parseObject(text);
System.out.println(JSONPath.eval(data, "$.age"));//18
JSONPath path = JSONPath.of("$.name"); // 缓存起来重复使用能提升性能
JSONReader parser = JSONReader.of(text);
String result = (String) path.extract(parser);
System.out.println(result);//Tom
更多请参考JSONPath-简单入门_myself8202的博客-CSDN博客
应用于数据高度一致,只需修改差异数据
JSONObject jsonObject = new JSONObject();
jsonObject.put("name","张三");
JSONObject jsonObject2 = jsonObject.clone();
jsonObject2.put("age",18);
System.out.println(jsonObject);//{"name":"张三"}
System.out.println(jsonObject2);//{"name":"张三","age":18}
JSON.parse();
JSON.stringify();