java实现将Json数组字符串转换成List列表

Json 数组字符串内容如下

        String res = "[\n" +
                "    {\n" +
                "        \"artifact_count\": 3,\n" +
                "        \"creation_time\": \"2022-04-22T08:13:41.746Z\",\n" +
                "        \"id\": 30,\n" +
                "        \"name\": \"base/statistic-service-base\",\n" +
                "        \"project_id\": 2,\n" +
                "        \"pull_count\": 0,\n" +
                "        \"update_time\": \"2022-04-22T08:13:41.746Z\"\n" +
                "    },\n" +
                "    {\n" +
                "        \"artifact_count\": 1,\n" +
                "        \"creation_time\": \"2022-04-22T08:12:19.763Z\",\n" +
                "        \"id\": 29,\n" +
                "        \"name\": \"base/tomcat_ra\",\n" +
                "        \"project_id\": 2,\n" +
                "        \"pull_count\": 0,\n" +
                "        \"update_time\": \"2022-04-22T08:12:19.763Z\"\n" +
                "    }]";

转换成 List列表

1、按 json 数组的字段新建一个实体类

import lombok.Data;
import java.io.Serializable;

/**
 * @author yuhuofei2021
 * @version 1.0
 * @date 2022/6/8 13:37
 */
@Data
public class ImageInfoVO implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer artifactCount;

    private String creationTime;

    private Integer id;

    private String name;
    
    private Integer projectId;

    private Integer pullCount;

    private String updateTime;
}

2、转换成 List 列表

  • 引入下面的 jar 包
import com.alibaba.fastjson.JSONArray;
  • 调用转换方法
 List<ImageInfoVO> jsonList = JSONArray.parseArray(res, ImageInfoVO.class);
  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Java中的Jackson库将JSON数组换为List。 具体步骤如下: 1. 导入Jackson库的依赖。 2. 创建ObjectMapper对象。 3. 使用ObjectMapper的readValue()方法将JSON数组换为Java对象数组。 4. 将Java对象数组换为List。 示例代码如下: ``` // 导入Jackson库的依赖 import com.fasterxml.jackson.databind.ObjectMapper; // 创建ObjectMapper对象 ObjectMapper objectMapper = new ObjectMapper(); // JSON数组字符串 String jsonArrayStr = "[{\"name\":\"张三\",\"age\":20},{\"name\":\"李四\",\"age\":22}]"; // 使用ObjectMapper的readValue()方法将JSON数组换为Java对象数组 User[] users = objectMapper.readValue(jsonArrayStr, User[].class); // 将Java对象数组换为List List<User> userList = Arrays.asList(users); ``` 其中,User为自定义的Java类,用于存储JSON数组中的数据。例如: ``` public class User { private String name; private int age; // getter和setter方法 } ``` ### 回答2: JSON是一种轻量级的数据交换格式,而Java中也提供了相应的JSON解析库。在使用Java解析JSON数据时,我们常会遇到将JSON数组化为List的需求。下面我们就来介绍一下JavaJSON数组化为List的方法。 如何换? Java中常用的JSON解析库有很多,比如Jackson、Gson、FastJson等。不同JSON解析库的化方式可能略有不同,但是它们都有一个共性,即将JSON数组化为Java List对象。以Jackson为例,利用ObjectMapper对象的readValue方法即可将JSON数组化为List。 举个例子,如果我们有以下JSON数组: [{"name":"Tom","age":18},{"name":"Jerry","age":20}] 我们可以将它化为ListList<User> userList = objectMapper.readValue(jsonStr, new TypeReference<List<User>>(){}); 其中User为自定义的Java类,用于表示JSON数据中的每个对象。 以上代码中,readValue方法的第一个参数是JSON数组字符串形式,第二个参数则是一个TypeReference对象,用于指定要化的类型,这里使用了Java中的泛型,指定为List<User>。 最后提醒:当我们进行JSON数据解析时,一定要考虑异常情况,并且保持良好的代码风格和注释,以便代码的可维护性和可读性。 ### 回答3: 在Java编程中,经常需要将JSON格式的数据化为List对象,以供程序进行处理。JSON是一种轻量级的数据交换格式,常用于前端与后端之间的数据交换。而Java中有许多开源的JSON解析库,例如Gson、Jackson等,这些库可以方便地将JSON数据化为Java对象。 在将JSON数组化为List时,我们可以使用Gson库中提供的fromJson方法。该方法可以接收两个参数:第一个参数为JSON字符串,第二个参数为List对象的类型。具体操作代码如下所示: ```java Gson gson = new Gson(); // 创建Gson对象 String jsonArray = "[{"name":"张三","age":18},{"name":"李四","age":20}]"; // JSON字符串 Type type = new TypeToken<List<Person>>() {}.getType(); // 定义List对象类型 List<Person> list = gson.fromJson(jsonArray, type); // 将JSON数组化为List对象 ``` 在上述代码中,我们首先创建了一个Gson对象,然后定义了JSON数组字符串形式。接着,我们通过TypeToken类的getType方法获得了List<Person>的类型。最后,我们调用Gson对象的fromJson方法将JSON字符串化为List<Person>对象。这里的Person类是自己定义的Java对象,它包含了name和age两个属性。从这段简单的代码可以看出,使用Gson库将JSON数组化为List对象非常简单,而且代码清晰易懂。 总的来说,将JSON数组化为List对象是Java编程中的一项基础操作,对于开发者来说非常重要。通过运用Gson或Jackson等库,我们可以轻松地实现这一目标,进而处理一系列JSON数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值