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パーサーライブラリ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

「各オブジェクトに複数のオブジェクトを含むオブジェクトを含む配列」という説明に適合する2つのJSONを次に示します。最初の方法は、オブジェクト内で配列を使用します。もう 1 つは Objects in Objects を使用します。

方法 1

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

上記を解析するには、2 つのネストされたforループ (または再帰的なもの) が必要です。

方法 2

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

2 番目の方法はfor、予想される内部オブジェクトの数が事前にわかっているため、1 回のループで解析できます。

于 2012-07-17T16:15:27.353 に答える