JSON操作工具


一、JSON?

  • json是一种轻量级的数据交换格式。
  • json和js对象的关系:json是js对象的字符串表示法(json本质上就是一个字符串)。

json和js对象的互相转换

// json字符串解析成json对象:{name:"zs",age:12}
var obj = JSON.parse('{"name":"zs","age":"12"}')

// json对象转换成json字符串:'{"name":"zs","age":"12"}'
var json = JSON.Stringify({name:"zs",age:12}) // 对象的键名也可以使用引号包裹

二、JSON操作工具

将Java对象转换为JSON格式,也可以将JSON字符串转换为Java对象。

  • fastjson
  • jackson
  • hutool-json

hutool-json工具的方法:

1.创建一个键值对象{“key”:“value”}

JSONObject obj = JSONUtil.createObj();
obj.set("list", "[{\"name\":\"zhangsan\",\"age\":18},{\"name\":\"lisi\",\"age\":19}]");
System.out.println("键值对象:" + obj);
System.out.println("通过list键获取值list对象:" + obj.get("list"));

打印:

键值对象:{"list":"[{\"name\":\"zhangsan\",\"age\":18},{\"name\":\"lisi\",\"age\":19}]"}
通过list键获取值list对象:[{"name":"zhangsan","age":18},{"name":"lisi","age":19}]

2.把list对象转换成JSONArray数组

JSONArray arrays = JSONUtil.parseArray(obj.get("list"));
System.out.println("list集合解析成JSONArray数组:" + arrays);

打印:

list集合解析成JSONArray数组:[{"name":"zhangsan","age":18},{"name":"lisi","age":19}]

3.把JSONArray数组转换成对应实体的list集合

List<Person> list = JSONUtil.toList(arrays, Person.class);
System.out.println("解析成对应实体类的list集合:" + list);

打印:

解析成对应实体类的list集合:[Person{name='zhangsan', age=18}, Person{name='lisi', age=19}]

4.json字符串直接转换成对应实体的list集合

String jsonStr = "[{\"name\":\"zhangsan\",\"age\":18},{\"name\":\"lisi\",\"age\":19}]";
System.out.println("前端传输的json字符串数组对象:" + jsonStr);
List<Person> people = JSONUtil.toList(jsonStr, Person.class);
System.out.println("解析成对应实体类的list集合:"+people);

打印:

前端传输的json字符串数组对象:[{"name":"zhangsan","age":18},{"name":"lisi","age":19}]
解析成对应实体类的list集合:[Person{name='zhangsan', age=18}, Person{name='lisi', age=19}]

5.格式化展示json对象

String jsonStr = "[{\"name\":\"zhangsan\",\"age\":18},{\"name\":\"lisi\",\"age\":19}]";
String jsonPrettyStr = JSONUtil.toJsonPrettyStr(jsonStr);
System.out.println(jsonPrettyStr);

打印:

[
    {
        "name": "zhangsan",
        "age": 18
    },
    {
        "name": "lisi",
        "age": 19
    }
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值