我试图解析这个json数据:
{
"KEY_ONE_TEST": {
"0": {
"Destination": [
"The Future"
],
"Id": [
"2"
]
},
"1": {
"Destination": [
"Milky way"
],
"Id": [
"2"
],
"VehicleType": "T"
}
}
}
对于我的生活,不能解决如何去做的事情。我想它的一个json对象有一个名为KEY_ONE_TEST的变量,它是一个json数组。
我可以阅读"顶级"东西:
JSONObject stop = new JSONObject(strData);
while(stop.keys().hasNext()) {
String id = stop.keys().next(); // gives KEY_ONE_TEST
但是我无法弄清楚如何从id中获取数组。
有人帮忙吗?
添加评论:我也试图做一般性的事情,因此我无法使用硬编码名称,例如' KEY_ONE_TEST' 0' 0' ' 1'等
TIA。
答案 0 :(得分:0)
您可以通过以下方式访问ID:
JSONObject stop = new JSONObject(strData);
JSONObject keyOneTest = stop.getJSONObject("KEY_ONE_TEST");
JSONObject zeroKey = keyOneTest.getJSONObject("0");
JSONArray idZeroKey = zeroKey.getJSONArray("Id");
答案 1 :(得分:0)
它取决于您的JSON结构,例如下面的代码允许使用您的结构导航并获取键和值:
JSONObject jsonObject = new JSONObject("your JSON");
JSONObject jsonObjectMain = jsonObject.getJSONObject("KEY_ONE_TEST");
System.out.println("jsonObjectMain >> " + jsonObjectMain.toString());
Iterator<String> itMain = jsonObjectMain.keys();
while (itMain.hasNext()) {
String keyMain = itMain.next();
System.out.println("itMain.key >> " + keyMain);
JSONObject jsonObjectSecond = jsonObjectMain.getJSONObject(keyMain);
Iterator<String> itSecond = jsonObjectSecond.keys();
while (itSecond.hasNext()) {
String keySecond = itSecond.next();
System.out.println("itSecond.key >> " + keySecond);
System.out.println("itSecond.value >> " + jsonObjectSecond.get(keySecond));
}
}
试试吧!
答案 2 :(得分:0)
让后端开发人员生成更多有意义的完整数据表示。我现在不必绕过对象和密钥迭代,我现在只需使用数组来处理关键数据。