JSONObject 与 JSON 互转
https://blog.csdn.net/u014799292/article/details/80692897
JSONObject 与 JSON 互转
使用目的
目前数据交互大多以 JSON 字符串为信息传输,主要格式有
{"age":"22","name":"李四"}
[{"age":"21","name":"张三"}]
最常见的应用场景是前后端对接,第三方平台文档对接,,下面展示转换使用。
一、引入 jar , 此处引入 com.alibaba.fastjson 版本的jar包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.31</version>
</dependency>
二、建立测试类对象
class Student {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
三、转换 1、对象 转 JSON
Student stu1 = new Student();
stu1.setName("张三");
stu1.setAge("21");
String stu1Json = JSONObject.toJSONString(stu1);
输出:
{"age":"21","name":"张三"} 2、JSON 转 对象
Student stu1to = JSON.parseObject(stu1Json, Student.class);
System.out.println("json 转对象:");
System.out.println(stu1to);
System.out.println(stu1to.getName());
System.out.println(stu1to.getAge());
输出:
json 转对象:
[email protected]2aae9190
张三
21
注:JSON键名要与对象属性名相对应
3、对象数组 转 JSON
Student stu2 = new Student();
stu2.setName("李四");
stu2.setAge("22");
List<Student> list = new ArrayList<Student>();
list.add(stu1);
list.add(stu2);
String listJson = JSONObject.toJSONString(list);
System.out.println(listJson);
输出:
[{"age":"21","name":"张三"},{"age":"22","name":"李四"}] 4、JSON 转 对象数组
List<Student> studentList = JSON.parseArray(listJson, Student.class);
for (Student student : studentList) {
System.out.println(student.getName());
}
输出:
json 数组格式转换对象
张三
李四
5、JSON多级组合,适用于请求文档传输参数
JSONObject jsona = new JSONObject();
jsona.put("number", "1");
JSONObject jsonb = new JSONObject();
jsonb.put("listMap", list);
JSONObject jsonAll = new JSONObject();
jsonAll.put("jsona", jsona);
jsonAll.put("jsonb", jsonb);
String jsonAllStr =JSONObject.toJSONString(jsonAll);
System.out.println(jsonAllStr);
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/42541.html