Мои требования: У меня есть запрос JSON в столбце таблицы, который приведен ниже.Прочтите запрос JSON и карту 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"},
}
]}
мне нужно прочитать его из БД и сопоставить значения JSON в трех различных классов properties.i.e. PrimaryData.java. OfficeData.java, ContactData.java. Я могу успешно прочитать запрос от БД, но поразил, как сопоставить значения свойствам в моих трех классах POJO. Я попытался использовать более быстрый xml, google Gson, org.json, но я не мог понять это. Может кто-нибудь дать мне идею или часть фрагмента кода? Как я пытаюсь достичь выше (не уверен, что если этот подход является правильным на всех)
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);
}
Покажите нам некоторый код –
@Yogesh Нараянан: Вы можете плз смотреть в него , –