Json数据处理-FastJson2的使用

FASTJSON 2是一个性能极致并且简单易用的Java JSON库。

Json数据处理-FastJson2的使用_第1张图片

 

1、FastJson的简单使用

1.1、将JSON解析为JSONObject

String text = "{\"name\":\"Tom\",\"age\":18}";
JSONObject data = JSON.parseObject(text);

1.2、将JSON解析为JSONArray

String text2 = "[{\"name\":\"Tom\",\"age\":18}]";
JSONArray data2 = JSON.parseArray(text2);

1.3、将JSON解析为Java对象

String text3 = "{\"name\":\"Tom\",\"age\":18}";
User data3 = JSON.parseObject(text3, User.class);

1.4、将Java对象序列化为JSON

可以是HashMap,ArrayList,实体类。

序列化:把对象转化为可传输的字节序列过程称为序列化。

反序列化:把字节序列还原为对象的过程称为反序列化。

User user = new User();
user.setName("zhangsan");
user.setAge(18);
user.setSex("男");

String text4 = JSON.toJSONString(user);

1.5、使用JSONObject、JSONArray获取属性

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

1.6、遍历JSONArray数据

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);
}

1.7、使用JSONPath读取数据

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博客

1.8拷贝JSON对象

应用于数据高度一致,只需修改差异数据

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}

2、JavaScript对Json的处理

2.1、JSON 字符串转换为JavaScript 对象

JSON.parse();

2.2、JavaScript 值转换为 JSON 字符串

JSON.stringify();

你可能感兴趣的:(json)