【发布时间】:2014-02-20 20:42:39
【问题描述】:
这是我的 JSON 数据示例:
{
"node_1.1":{
"someCrap":{
"someCrap":"SomeValue"
}
},
"node_1.2":{
"Node_1.2.1":{
"Node_1.2.1.1":{
"param1":value,
"param2":value,
"param3":"value",
"paramThatIneed":{
"ThisIsWhatIActuallyNeed":"url",
"width":96,
"height":72
}
},
"Node_1.2.1.2":{
Same as above, just that paramThatINeed might be missing, gotta place imagePlaceHolder Here
},
//and so on... there are a total of 50 of these..
}
}
}
现在我可以得到 node_1.1 和 Node 1.2 以及它的子节点 node_1.2.1
但是,node_1.2.1 内部有 50 个子节点,它们的名称会随机从服务器返回。它是字符串格式,但它们实际上是整数。它是一个页面 ID。
现在我想遍历 node_1.2.1 并获取这些子节点并访问它们的子节点并获取paramThatINeed 的 URL。如果paramThatINeed 不存在,我需要输入一些空值/虚拟值。
这是我尝试使用的代码:
JSONObject jsonObj = new JSONObject(jsonStr); //jsonStr is the entire JSON string
JsonObject node_1.2= jsonObj.getJsonObject("node_1.1");
JsonObject node_1.2.1 = node_1.2.getJsonObject("node_1.2.1");
之后我该怎么办?因为我只能通过将字符串 param 传递给它来获取 JsonObject,所以我尝试使用 for 循环,但它不需要任何 int param。
另外,正如我之前所说,之后的节点具有随机名称并且不固定。所以我完全糊涂了。
如果您知道如何解决此问题,请帮助我。请记住这里没有JsonArray。我可能正在考虑编辑 JSON 字符串本身并将 '{' 的某些部分替换为 '[' 并将其转换为数组 :( ...我认为这是一种可悲的方法。
【问题讨论】:
-
JSON 是一个基于键/值对的系统,其中键是固定值,而不是数据本身。这真的是您唯一可用的数据格式吗?
标签: android json jsonobject