java - 将 JSONArray 转换为 arrayList

标签 java arrays json arraylist

我正在尝试转换一个 JSONArray ,如下所示:

{"output":["name":"Name3","URI":"Value3"},{"name":"Name5","URI":"Value5"},{"name":"Name4","URI":"Value4"}]}

转换为 arrayList,例如 Arr[0][0] 的输出将是 Name3

我尝试过这个解决方案:

if (outputs!= null) { 
    int len = outputs.length();
    for (int j=0;j<len;j++){ 
        list.add(outputs.get(j).toString());
    } 
} 
for (String str : list) {               
    System.out.println("Item is: " + str);              
}

但我得到了完整的行:{"name":"Name3","URI":"Value3"}

如何获取 JSONArray 的每个对象?

最佳答案

没有指定您使用哪个 JSON 解析器,所以我想您现在可以选择,我建议使用 Gson

反序列化此类结构的更好解决方案是为每个结构创建一个特殊的类,例如:

public class NameURIPair {
    private String name;
    private String URI;

    // getters
}

然后您的 JSON 可以被反序列化为一个类,该类在其中保存生成的 List:

public class Data {
    private List<NameURIPair> output;

    // getter
}

// ...

Data data = new Gson(stringData, Data.class);

由于您以其他方式请求,您仍然可以使用 JsonParser 将解析后的 JSON 获取到 JsonElement 中。

JsonElement root = new JsonParser().parse(stringData);

虽然我不会给你完整的解决方案,但不要欣赏这种解决方案:-)

关于java - 将 JSONArray 转换为 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30305836/

相关文章:

java - 是否可以同时使用 Ant 和 Maven 来管理一个项目?

javascript - 如何过滤数组并获取整个数据条目?

ios - 创建一个有默认值的数组,但是默认值被改变了

c - 当我想将数组写入文件时内存损坏

java - 消除重复条目的最有效方法

java - 检索当前用户的 child 数据: Firebase

javascript - 将 API 响应中的图像放在 html 页面上?

jquery函数返回数组中的json值

java - Guice 单例静态注入(inject)模式

php - 如何将 JSON 放入 PHP 变量中?