[英]JSON converting result in java failed (JSONObject cannot be converted to JSONArray)
我的PHP脚本的JSON结果有问题。 我无法在JAVA中提取此结果。 出现以下错误:
Error converting result org.json.JSONException: Value
{"3":[{"date":"25\/07\/2011","descr":"Une colloque bla bla","numColloque":"1","titre":"Une colloque"}],
"2":[{"mail":"jm@dvaid.fr","descr":"truc truc","nom":"Une personne","tel":"0600000000","numPersonne":"1"}],
"1":[{"lien":"http:\/\/www.irdes.fr","numTypeActu":"1","date":"25\/07\/2011","titre":"Une actualité récente","numActu":"1"}],
"7":[{"numEtablissement":"1","specialite":"STG","mention":"une mention","modalite":"BTS","titre":"Un titre de formation","numFormationCours":"1"}],
"6":[{"numEtablissement":"1","numEnseignement":"1","titre":"Cours de bla bla","numEnseignant":"1"}],
"5":[{"date":"31\/07\/2011","descr":"Université paris descartes dans le 1-ème arrondissement de Paris","numEtablissement":"1","libelle":"IUT Paris DESCARTES"}],
"4":[{"numDocument":"1","lienPDF":"http:\/\/www.irdes.com","date":"25\/07\/2011","numTypeDocument":"1","descrRapide":"un glossaire qui regroupe du bla bla","nom":"un document de glossaire"},
{"numDocument":"2","lienPDF":"http:\/\/www.irdes.com","date":"25\/07\/2011","numTypeDocument":"2","descrRapide":"Une synthèse parlant d'un truc","nom":"Une synthèse"}],
"9":[{"lien":"http:\/\/www.irdes.fr","descr":"un séminaire sur le blabla","date":"25\/07\/2011","heure":"14h30","nom":"Un séminaire","numSeminaire":"1"}],
"8":[{"numPublication":"1","lienPDF":"http:\/\/www.irdes.com","date":"25\/07\/2011","numTypePublication":"1","titre":"Une publication"},
{"numPublication":"2","lienPDF":"http:\/\/www.irdes.com","date":"25\/07\/2011","numTypePublication":"2","titre":"un titre de publication"},
{"numPublication":"3","lienPDF":"http:\/\/www.irdes.com","date":"25\/07\/2011","numTypePublication":"3","titre":"un titre"}]}
of type org.json.JSONObject cannot be converted to JSONArray
我的结果的语法很简单:
{"Object1":[{"id":"value"},{"id":"value"}],
"Object2":[{"id":"value"},{"id":"value"}],
...
}
我用于提取的JAVA脚本(ligne错误:带有**):
result=sb.toString();
**JSONArray jArray = new JSONArray(result);**
for (int i=1;i<=9;i++){
JSONObject typeUpdateObject = jArray.getJSONObject(i);
extraction(typeUpdateObject, i);
}
这不是提取的正确方法吗?
您对对象和数组感到困惑。
您发布的两个代码示例都是对象{}
而数组是[]
。
您的结构是: {[{}]}
而您的解析代码段应为: [{}]
错误中有一个大提示:类型org.json.JSONObject无法转换为JSONArray
对象是键:值对的无序列表。
{ // object
"key" : "value",
"key2" : "another value"
}
数组是值的有序(索引)列表:
[ // array
"value1",
"value2"
]
Chris和Charles的答案是正确的,您应该查看JSON规范 。 就是说,我相信以下是您正在寻找的东西。
JSONObject obj = new JSONObject(result);
for(int i=1;i<=9;i++) {
JSONArray arr = obj.getJSONArray(""+i);
for(int j=0;j<arr.length();j++)
extraction(arr.getJSONObject(j), i);
}
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
这就是JSON的外观,
正如Charles所说的Object {} Arrays [],这是学习JSON的便捷备忘单
对象 {} {个成员} 成员对对,成员对字符串:值数组 [] [元素] 元素值value,元素值字符串数对象数组true false null
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.