Ich hab grad das Problem wenn ich einen Json String vom Server bekomme und ich ihn dann einem JSONObject übergebe und auslese, eine völlig andere Reihenfolge habe. Ich weiss nicht ob dass an mir oder an der internen Implementierung solch eines Objektes liegt.
Zur Veranschaulichung:
So bekomm ich das vom Server:
{"Export":[
{"name":"Testdaten","data1":10,"data2":12,"data3":14,"data4":8,"data5":13},
{"name":"Testblabla","data1":7,"data2":8,"data3":16,"data4":10,"data5":3},
........
]
}
und so sieht es auch wenn ich es in ein JSONObject einlese(Teilauschnitt)
{"data1":10,"name":"Testdateb","data4":8,"data5":13,"data2":12,"data3":14}
Zur Veranschaulichung:
So bekomm ich das vom Server:
{"Export":[
{"name":"Testdaten","data1":10,"data2":12,"data3":14,"data4":8,"data5":13},
{"name":"Testblabla","data1":7,"data2":8,"data3":16,"data4":10,"data5":3},
........
]
}
und so sieht es auch wenn ich es in ein JSONObject einlese(Teilauschnitt)
{"data1":10,"name":"Testdateb","data4":8,"data5":13,"data2":12,"data3":14}
Java:
JSONObject oJSONObject;
try {
//jstring = JsonString vom Server.
oJSONObject = new JSONObject(jstring);
//Hier hole ich mir den Array -> Export[..]
JSONArray recs = oJSONObject.getJSONArray("Export");
for (int i = 0; i < recs.length(); ++i) {
// hier greife ich auf die einzelne Json-Datensätze zu. Sind hier aber schon in
// der falschen reihenfolge
JSONObject rec = recs.getJSONObject(i);
// das aber hier ist eigentlich egal.
String[] nametest = rec.getNames(rec);
for (int a = 0; a < nametest.length; a++) {
if (!(nametest[a].toString().equalsIgnoreCase("name"))) {
System.out.println(rec.getString(nametest[a].toString()));
}
}
}