You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JSON格式字符串转换为JSONArray并转为List集合?

解决JSON数组字符串转List的问题

看起来你在把JSON数组字符串转换成Java List集合的时候踩了个小坑,咱们一步步来修正你的代码:

先说说你现有代码的核心问题

  • 你错误地把JsonObject强制转换成JSONArray,这两个类没有继承关系,运行时肯定会抛出ClassCastException
  • 你完全没用到目标JSON字符串toConvert,而是新建了一个空的JsonObject,这根本没法解析你要处理的内容

方案1:使用原生org.json库(适合基础场景)

如果用的是Java自带的org.json库,正确的做法是直接用JSON字符串初始化JSONArray,然后遍历每个元素,手动映射到你的myClass对象:

import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;

public void RestoreData() {
    String toConvert = "[{...}]"; // 你的标准JSON数组字符串
    List<myClass> listdata = new ArrayList<>();
    
    try {
        // 直接用JSON字符串初始化JSONArray,这才是正确的解析方式
        JSONArray jArray = new JSONArray(toConvert);
        
        for (int i = 0; i < jArray.length(); i++) {
            JSONObject jsonObj = jArray.getJSONObject(i);
            // 把JSONObject的字段映射到myClass对象,这里需要你根据myClass的属性来写
            myClass item = new myClass();
            item.setId(jsonObj.getInt("id")); // 示例:假设myClass有id字段
            item.setName(jsonObj.getString("name")); // 示例:假设myClass有name字段
            // 其他属性依次映射...
            
            listdata.add(item);
        }
    } catch (Exception e) {
        // 捕获JSON解析异常,避免程序崩溃
        e.printStackTrace();
    }
    
    // 现在listdata里就是你要的集合了
}

方案2:用Gson库(更简洁,自动映射)

如果想更省心,避免手动字段映射,可以用Google的Gson库,它能直接把JSON数组字符串转换成List:

首先确保你的myClass类的字段名和JSON里的键名一致(或者用@SerializedName注解指定对应关系),然后代码可以简化成:

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.List;

public void RestoreData() {
    String toConvert = "[{...}]"; // 你的标准JSON数组字符串
    
    Gson gson = new Gson();
    // 用TypeToken来指定泛型类型,避免类型擦除问题
    List<myClass> listdata = gson.fromJson(toConvert, new TypeToken<List<myClass>>(){}.getType());
    
    // 直接得到转换后的List,无需手动遍历
}

小提示

  • 如果用Jackson库,思路和Gson类似,也是通过ObjectMapper来实现自动转换
  • 无论用哪种方式,都要确保你的myClass有对应的无参构造方法,否则解析库可能无法实例化对象

内容的提问来源于stack exchange,提问作者Hubizonek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:30:07