Привет, кто-нибудь знает, как создать массив, содержащий объекты, которые в каждом объекте содержат несколько объектов? я просто не могу показаться,
структура должна выглядеть так
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);
heres мой 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"
}
]
}
}
Вы имеете в виду это?:
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());
JSON String
{
"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);
}
То, что я хотел бы предложить, - использовать библиотеку JackSON JSON Parser http://jackson.codehaus.org/. Тогда вы можете создать класс с теми же полями, что и сын JSON, сопоставление из класса JSON To будет прямым. Поэтому, когда у вас есть все элементы из JSON в список классов, вы можете заказывать по датам или манипулировать данными по своему усмотрению. Представьте, что src - это строка, содержащая текст JSON. С JackSON lib вам просто нужно это сделать.
ObjectMapper mapper = new ObjectMapper();
List<Fixture> result = mapper.readValue(src, new TypeReference<List<Fixture>>() { });
Вот две части JSON, которые соответствуют вашему описанию, которое представляет собой "Массив, содержащий объекты, которые в каждом объекте содержат несколько объектов". Первый метод использует массивы внутри объектов. Другой использует объекты в объектах.
Способ 1
[ { "name" : "first object in array" , "inner array" : [ { <object> } , { <object> } ] }
, { "name" : "second object in array" , "inner array" : [ { <object> } , { <object> } ] } ]
Для разбора выше вам нужны два вложенных for
петель (или что - то рекурсивное).
Способ 2
[ { "name" : "first object in array" , "first inner object" : { <object> } , "second inner object" : { <object> } } , <etc.> ] } ]
Второй метод может быть проанализирован с синглом for
цикла, потому что вы знаете заранее, количество внутренних объектов ожидать.