1

嗨,有谁知道如何创建一个包含每个对象中包含多个对象的对象的数组?我似乎无法理解它

结构应该是这样的

Array{[object]{subobject,subobject}
      [object]{subobject,subobject}
     }

这是我到目前为止所拥有的

JSONObject obj = new JSONObject(json2);    
            JSONObject objData = obj.getJSONObject("data");
            fixturesArray = objData.getJSONArray("fixtures");

            JSONArray FixArray = new JSONArray();


            for(int t = 0; t < fixturesArray.length(); t++){
            JSONObject fixObj = fixturesArray.getJSONObject(t);
            String Matchdate = fixObj.getString("matchdate");
            JSONObject DateObj = DateObj.put(Matchdate, DateObj);

继承人我的 JSON 基本上是我所拥有的,如果是我需要将它们订购到日期数组中的固定装置的馈送

{
    "code":200,
    "error":null,
    "data":{
        "fixtures":[
            {
                "kickoff":"15:00:00",
                "matchdate":"2012-07-28",
                "homescore":null,
                "awayscore":null,
                "attendance":null,
                "homepens":null,
                "awaypens":null,
                "division_id":"5059",
                "division":"Testing 1",
                "comp":"LGE",
                "location":null,
                "fixture_note":null,
                "hometeam_id":"64930",
                "hometeam":"Team 1",
                "awayteam_id":"64931",
                "awayteam":"Team 2"
            }, {
                "kickoff":"15:00:00",
                "matchdate":"2012-07-28",
                "homescore":null,
                "awayscore":null,
                "attendance":null,
                "homepens":null,
                "awaypens":null,
                "division_id":"5059",
                "division":"Testing 1",
                "comp":"LGE",
                "location":null,
                "fixture_note":null,
                "hometeam_id":"64930",
                "hometeam":"Team 1",
                "awayteam_id":"64931",
                "awayteam":"Team 2"
            }
        ]
    }
}
4

4 回答 4

5

你是这个意思吗:

JSONObject obj = new JSONObject();
obj.put("x", "1");
JSONObject parent_object = new JSONObject();
parent_object.put("child", obj);
JSONArray array = new JSONArray(parent_object.toString());
于 2012-07-17T16:07:17.500 回答
2

JSON字符串

{
"result": "success",
"countryCodeList":
[
  {"countryCode":"00","countryName":"World Wide"},
  {"countryCode":"kr","countryName":"Korea"}
] 
}

下面我正在获取国家/地区详细信息

JSONObject json = new JSONObject(jsonstring);
JSONArray nameArray = json.names();
JSONArray valArray = json.toJSONArray(nameArray);

JSONArray valArray1 = valArray.getJSONArray(1);

valArray1.toString().replace("[", "");
valArray1.toString().replace("]", "");

int len = valArray1.length();

for (int i = 0; i < valArray1.length(); i++) {

 Country country = new Country();
 JSONObject arr = valArray1.getJSONObject(i);
 country.setCountryCode(arr.getString("countryCode"));                        
 country.setCountryName(arr.getString("countryName"));
 arrCountries.add(country);
}
于 2012-07-18T06:10:15.737 回答
1

我建议做的是使用 JackSON JSON Parser 库http://jackson.codehaus.org/ 然后您可以创建一个具有与 JSON 子相同字段的类,从 JSON 到类的映射将是直接的。因此,一旦您将 JSON 中的所有项目放入类列表中,您就可以按日期排序或根据需要操作数据。假设 src 是一个包含 JSON 文本的字符串。使用 JackSON lib,您只需要这样做。

ObjectMapper mapper = new ObjectMapper();

List<Fixture> result = mapper.readValue(src, new TypeReference<List<Fixture>>() { });

于 2012-07-17T16:41:04.943 回答
0

这是符合您描述的两段 JSON,即“包含对象的数组,每个对象中包含多个对象”。第一种方法使用对象内部的数组。另一个使用对象中的对象。

方法一

[ { "name" : "first object in array" , "inner array" : [ { <object> } , { <object> } ] }
 , { "name" : "second object in array" , "inner array" : [ { <object> } , { <object> } ] } ]

要解析上述内容,您需要两个嵌套for循环(或递归)。

方法二

[ { "name" : "first object in array" , "first inner object" : { <object> } , "second inner object" : { <object> } } , <etc.> ] } ]

第二种方法可以用一个for循环解析,因为您事先知道预期的内部对象的数量。

于 2012-07-17T16:15:27.353 回答