JSON格式字符串、JSON对象之间的相互转换

FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

https://www.cnblogs.com/cdf-opensource-007/p/7106018.html

  • 一.pom.xml配置jar包
<!-- Json依赖架包下载 -->
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.49</version>
</dependency>
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>1.1.10</version>
</dependency>
  • 二.首先定义三个json格式的字符串,作为我们的数据源
//json字符串-简单对象型
private static final String JSON1= "{\"studentName\":\"lily\",\"studentAge\":12}";
//json字符串-数组类型
private static final String JSON2= "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]";
//复杂格式json字符串
private static final String JSON3= "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";

json数据转换成list

List<VAutoAssignTask> vAutoAssignTaskList = JSON.parseArray(vAutoAssignTask, VAutoAssignTask.class);

1.JSON格式字符串与JSON对象之间的转换
1.1-json字符串-简单对象型与JSONObject之间的转换

JSONObject jsonObject=JSON.parseObject(JSON1);
//JSONObject jsonObject1=JSONObject.parseObject(JSON1); //因为JSONObject继承了JSON,所以这样也是可以的

1.2-json字符串-数组类型与JSONArray之间的转换

JSONArray jsonArray=JSON.parseArray(JSON2);
//JSONArray jsonArray1=JSONArray.parseArray(JSON2);//因为JSONArray继承了JSON,所以这样也是可以的,之后再遍历
//遍历方式1
 int size = jsonArray.size();
 for (int i = 0; i < size; i++){
    JSONObject jsonObject = jsonArray.getJSONObject(i);          System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));
 }
 //遍历方式2
  for (Object obj : jsonArray) {
      JSONObject jsonObject = (JSONObject) obj;         System.out.println(jsonObject.getString("studentName")+":"+jsonObject.getInteger("studentAge"));
        }

1.3-复杂json格式字符串与JSONObject之间的转换

JSONObject jsonObject=JSON.parseObject(JSON3);
 //JSONObject jsonObject1=JSONObject.parseObject(JSON3);//因为JSONObject继承了JSON,所以这样也是可以的
2.JSON格式字符串与java对象之间的转换。
2.1-json字符串-简单对象型与java对象之间的转换
Student student = JSON.parseObject(JSON1, new TypeReference<Student>() {});
//Student student1 = JSONObject.parseObject(JSON1, new TypeReference<Student>() {});//因为JSONObject继承了JSON,所以这样也是可以的

2.2-json字符串-数组类型与javaBean之间的转换

ArrayList<Student> students=JSON.parseObject(JSON2, new TypeReference<ArrayList<Student>>() {});
//ArrayList<Student> students1=JSONArray.parseObject(JSON2, new TypeReference<ArrayList<Student>>() {});//因为JSONArray继承了JSON,所以这样也是可以的,之后再解析        
 for (Student student : students) {
      System.out.println(student.getStudentName()+":"+student.getStudentAge());
 }

2.3-复杂json格式字符串与与javaBean之间的转换

Teacher teacher = JSON.parseObject(JSON3, new TypeReference<Teacher>() {});
//Teacher teacher1 = JSON.parseObject(JSON3, new TypeReference<Teacher>() {});//因为JSONObject继承了JSON,所以这样也是可以的
List<Student> students = teacher.getStudents();for解析就可以获取

3.java对象转换JSON格式字符串。

//java对象转换为json对象
JSONObject  jsonObjects=JSONObject.toJSON(User);
//json对象转换为Java对象(一步成功和4中一样)
JavaObject  javaObjects=JSONObject.toJavaObject(jsonObjects);
//json对象转换为(json)字符串
String json=JSON.toJSONString(jsonObjects);

//上边两行可以合并为一行。java对象转换为json对象在转换为(json)字符串
String json=JSON.toJSONString(JSONObject.toJSON(User));

4.JSON格式字符串转换java对象。

//json对象转换为java对象
user= JSONObject.parseObject(json1, new TypeReference<User>(){} );

此外的:
1,对于JSON对象与JSON格式字符串的转换可以直接用 toJSONString()这个方法。
2,java对象与JSON格式字符串之间的转换要用到:JSON.toJSONString(obj);
3,java对象与json对象间的转换使用:JSON.toJSON(obj),然后使用强制类型转换,JSONObject或者JSONArray。

JSON字符串和java对象的互转【json-lib】
JSON可以有两种格式,一种是对象格式的,另一种是数组对象,

{"name":"JSON","address":"北京市西城区","age":25}//JSON的对象格式的字符串
 
[{"name":"JSON","address":"北京市西城区","age":25}]//数组(数据)对象格式

https://www.cnblogs.com/free-dom/p/5801866.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fastjson是一款高性能的Java JSON处理器,它提供了很多功能实现JSON字符串与Java对象转换。复杂JSON格式字符串转换成JavaBean对象时,需要按照以下的方法进行操作: 首先,我们需要创建一个JavaBean类,属性需要与对应的JSON格式相匹配,可以使用注解或者getter、setter方法来指定属性名。如下面的代码片段所示,我们创建了一个User类。 ```java public class User { private String name; private int age; private List<Address> addressList; // getter、setter、toString方法省略 } ``` 在User类中,我们定义了与JSON格式相对应的属性,其中addressList是一个List类型,它的元素是Address类型,如下所示: ```java public class Address { private String city; private String street; private String zipCode; // getter、setter、toString方法省略 } ``` 接着,我们可以使用fastjson提供的工具类JSON.parseObject()方法将JSON格式字符串转换为JavaBean对象。如下所示: ```java String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"addressList\":[{\"city\":\"beijing\",\"street\":\"chaoyang\",\"zipCode\":\"100000\"},{\"city\":\"shanghai\",\"street\":\"pudong\",\"zipCode\":\"200000\"}]}"; User user = JSON.parseObject(jsonStr, User.class); ``` 在上面的代码中,我们首先定义了一个JSON格式字符串,然后使用JSON.parseObject()方法将其转换为User对象。在这个方法的第一个参数中,我们需要传入JSON格式字符串,第二个参数是目标JavaBean的类型。fastjson会自动将JSON字符串中的属性值赋值给JavaBean对象中的对应属性。如果JSON格式字符串中的属性名称与JavaBean中的属性名称不匹配,我们需要在JavaBean中使用@JSONField注解或者getter、setter方法指定对应的属性名。 在将JavaBean对象转换JSON格式字符串时,我们可以使用fastjson提供的工具类JSON.toJSONString()方法。如下所示: ```java String jsonUser = JSON.toJSONString(user); ``` 在上面的代码中,我们将User对象转换JSON格式字符串。 总结来说,通过fastjson将复杂JSON格式字符串转换成JavaBean对象需要创建对应的JavaBean类,然后使用JSON.parseObject()方法将JSON字符串转换为JavaBean对象。如果需要将JavaBean对象转换JSON字符串,我们可以使用JSON.toJSONString()方法实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值