我想解析一个Json文件,其中所有Json Arrays具有相同的名称:
[
{
"mobileMachine":{
"condition":"GOOD",
"document":"a",
"idNr":"ce4f5a276a55023efced9c6a4b02bf4fcff04c06b4338467c8679770bff32313f7f372b5ec2f7527dad0de47d0fb117e"
}
},
{
"mobileMachine":{
"condition":"GOOD",
"document":"b",
"idNr":"ce4f5a276a8e023efced9c6a4b02bf4fcff04c06b4338467c8679770bff32313f7f372b5ec2f7527dad0de47d0fb217e"
}
},
...
]
所以这是我的小代码:
JSONArray json = new JSONArray(urlwhereIGetTheJson);
for (int count = 0; count < json.length(); count++) {
JSONObject obj = json.getJSONObject(count);
String condition = obj.getString("condition");
String document = obj.getString("document");
String idNr = obj.getString("idNr");
db.addMachine(new MachineAdapter(condition, document, idNr));
}
我希望你能告诉我如何正确解析JSON文件。谢谢
我无法编辑JSON文件。 (该文件包含300多个移动设备。我缩短了这个。)
(抱歉我的英文)
答案 0 :(得分:0)
将其更改为
JSONArray json = new JSONArray(jsonString);
for (int count = 0; count < json.length(); count++) {
JSONObject obj = json.getJSONObject(count).getJSONObject("mobileMachine");
String condition = obj.getString("condition");
String document = obj.getString("document");
String idNr = obj.getString("idNr");
db.addMachine(new MachineAdapter(condition, document, idNr));
}
你忘了“mobileMachine”。
答案 1 :(得分:0)
修改:您错误地使用了new JSONArray()
构造函数。看看documentation。你不能直接在那里传递网址。您必须先获取它,然后将json传递给构造函数。
以下代码执行您想要执行的操作:
JSONArray jsonArray = new JSONArray(json);
int numMachines = jsonArray.length();
for(int i=0; i<numMachines; i++){
JSONObject obj = jsonArray.getJSONObject(i);
JSONObject machine = obj.getJSONObject("mobileMachine");
String condition = machine.getString("condition");
String document = machine.getString("document");
String idNr = machine.getString("idNr");
db.addMachine(new MachineAdapter(condition, document, idNr));
}
您忘记获取“mobileMachine”json对象,并尝试直接访问condition / document / idNr。
如果您可以控制XML,可以通过删除“mobileMachine”节点将其缩小:
[
{
"condition":"GOOD",
"document":"a",
"idNr":"ce4f5a276a55023efced9c6a4b02bf4fcff04c06b4338467c8679770bff32313f7f372b5ec2f7527dad0de47d0fb117e"
},
{
"condition":"GOOD",
"document":"b",
"idNr":"ce4f5a276a8e023efced9c6a4b02bf4fcff04c06b4338467c8679770bff32313f7f372b5ec2f7527dad0de47d0fb217e"
},
...
]