当前位置:首页 > Web开发 > 正文

JSONObject 与 JSON 互转

2024-03-31 Web开发

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