Meine Anforderung: Ich habe eine JSON-Anfrage in einer Tabellenspalte, die wie folgt ist.Lesen JSON Anfrage und Karte zu JAVA POJO
{
"customerData": [{ "primaryData":[ {
"HNo": "8-10-2",
"APTNM": "SRSENCLAVE",
"STRT": "MGCLNY"
}],
"officeData":{
"ADDR": "1/7-25",
"STRT": "FINDIST",
"LM": "JBE"
},
"ContactData": {
"PHNO":"XXXXXXXXX",
"ZIP":"XXXXXX",
"MAILCD": "XXXX"},
}
]}
Ich muss es von DB lesen und die JSON-Werte in drei verschiedenen Klassen properties.i.e zuordnen. PrimäreDaten.java. OfficeData.java, ContactData.java. Ich bin erfolgreich in der Lage, die Anfrage von der DB zu lesen, schlug aber vor, wie die Werte den Eigenschaften in meinen drei POJO-Klassen zugeordnet werden. Ich habe versucht, schneller xml, google Gson, org.json, aber ich konnte es nicht gut bekommen. Kann mir jemand eine Idee oder einen Teil des Codeausschnitts geben? Wie ich versuche oben zu erreichen (nicht sicher, ob dieser Ansatz überhaupt richtig ist)
List<Map<String, PrimaryData>> cxData = new ArrayList<Map<String,PrimaryData>>();
JSONObject jSONObject = new JSONObject(query.getResultList().get(0).toString());
JSONArray jsonArray = jSONObject.getJSONArray("customerData");
int length = jsonArray.length();
for (int i=0; i<length; i++)
{
// FOR EACH ENTRY
JSONObject OneEntry = jsonArray.getJSONObject(i);
int OneEntrySize = OneEntry.length();
JSONArray EntKey = OneEntry.names();
Map<String, PrimaryData> map = new HashMap<String, PrimaryData>();
for (int j=0; j<OneEntrySize;j++)
{ // FOR EACH ITEM IN AN ENTRY
String key = EntKey.getString(j);
PrimaryData val = (PrimaryData)OneEntry.opt(key);;--unable to cast (can not cast JsonArray to PrimaryData)
map.put(key, val);
}
cxData.add(map);
}
uns zeigen einige Code –
@Yogesh Narayanan: Können Sie plz es aussehen in . –