我有以下JSONArray:
[
{
"test":{
"page":"Apple",
"ms":"234"}
},
{
"check":{
"page":"Apple",
"ms":"234"
}
}
]
这里说“test”和“check”是父元素,会有很多像这样的元素。所以我必须循环遍历它们中的每一个并且必须得到if的子元素,如果它与名称匹配。我是JSON的新手,所以不知道它是如何工作的。下面是它应该如何工作的简单算法。
Loop through each elements:
switch(parent_name){
case "test":
get child information like:
if(attribute == "page"){
get text which is "Apple"
}
break;
default:
break;
}
这是应该如何运作的。我试过用XML。但不是JSON。下面是xml代码:
Element docEle = doc.getDocumentElement();
NodeList nl = docEle.getChildNodes();
if (nl != null && nl.getLength() > 0) {
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeType() == Node.ELEMENT_NODE) {
Element ele = (Element) nl.item(i);
switch(ele.getNodeName()){
case "Click":
ele.getAttributes().getNamedItem("object").getNodeValue();
break;
case "Open":
ele.getAttributes().getNamedItem("page").getNodeValue();
break;
case "CheckElementPresent":
ele.getAttributes().getNamedItem("object").getNodeValue();
break;
default:
break;
}
}
}
}
答案 0 :(得分:1)
您可以将其用作:
JSONArray jsonArray = data; //here data is JSON array you are getting from any source
你需要添加JSONException because when we get
JSONObject from
JSONArray`它可以抛出错误。
然后只是迭代它:
for( int i = 0 ; i < jsonArray.length() ; i++ ){
try {
JSONObject object = jsonArray.getJSONObject(i);
if( ! object.isNull("test") ){
JSONObject j = object.getJSONObject("test");
System.out.println(j.getString("page"));
System.out.println(j.getString("ms"));
}
if( ! object.isNull("check") ){
JSONObject j = object.getJSONObject("check");
System.out.println(j.getString("page"));
System.out.println(j.getString("ms"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
还有问题然后发布给我。