我正在尝试转换一个 JSONArray
,如下所示:
{"output":["name":"Name3","URI":"Value3"},{"name":"Name5","URI":"Value5"},{"name":"Name4","URI":"Value4"}]}
转换为 arrayLis
t,例如 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/