gpt4 book ai didi

java - 检查特定的 JSON 对象是否可用

转载 作者:IT老高 更新时间:2023-10-28 23:38:21 24 4
gpt4 key购买 nike

我有如下 JSON 文件,必须将其转储到 ArrayList 中:

{
"main1" : [
{
"child1" : valueA,
"child2" : valueB,
"child3" : valueC,
},
{
"child1" : value1,
"child3" : value3,
},
],
"main2" : "valueMain2"
}

元素 child2必须检查它是否存在,然后取值。可以看到它没有出现在第二个数组中。

我正在使用 native JSON (org.JSON)Java 代码如下:

ArrayList<HashMap<String,String>> myList = new ArrayList<HashMap<String,String>>();
JSONObject json = <my_json_object>;

JSONObject getchild2;

JSONArray jArray = <my_json_object>.getJSONArray("main1");
for(int j = 0; j < jArray.length(), j++){
HashMap<String,String> map = new HashMap<String,String>();

map.put("First Value", jArray.getJSONObject(j).getString("child1"));
map.put("Third Value", jArray.getJSONObject(j).getString("child3"));

getchild2 = jArray.getJSONObject(j).getJSONObject("child2");
if(getchild2 == null){
map.put("Second Value", "Some Dummy Value");
} else {
map.put("Second Value", jArray.getJSONObject(j).getString("child2"));
}
myList.add(map);
}

我怎样才能做到这一点?

<my_json_object>使用 native URL 解析,因为我在这里找到了 URL 请求的 HTTP 响应:http://mobisys.in/blog/2012/01/parsing-json-from-url-in-android/

它不起作用,因为错误如下:

E/AndroidRuntime(664): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

最佳答案

无论如何,我通过谷歌搜索得到了解决方案:我将其重新定义为,

 if (!jArray.getJSONObject(j).has("child2")) {
map.put("Second Value", "N.A");
} else {
map.put("Second Value", jArray.getJSONObject(j).getString("child2"));
}

创建 JSONObject getchild2 = jArray.getJSONObject(j).getJSONObject("child2");相当,不必要。

这很有效,相当完美!详情请参阅:Checking if exists subObject in JSON

感谢大家的帮助!

关于java - 检查特定的 JSON 对象是否可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10594188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com