Моя цель, когда я делаю много кодирования ответов, если вы действительно понимаете, что вы делаете, а не просто копируете и вставляете мой код в свой проект. Если вы никогда не работали instanceof
, я советую вам прочитать об этом. Если у вас есть ЛЮБЫЕ вопросы, пожалуйста, спросите меня.
Я заставлю тебя начать. Зачем? Вы не показываете код в своем посте, поэтому я объясню, что с этим делать.
JSONArray object = new JSONArray(jsonData);
//jsonData if the JSON String.
String configVal = null;
JSONArray configArray = null;
JSONArray timingArray = null;
boolean hasAreas = false;
boolean hasTiming = false;
try {
for (int i = 0; i < object.length(); i++) {
JSONObject getJSONObject = object.optJSONObject(i);
if (getJSONObject.get("configurationVal") instanceof JSONObject) {
JSONObject configValObject = getJSONObject.getJSONObject("configurationVal");
configArray = configValObject.getJSONArray("availableAreas");
hasAreas = true;
} else if (getJSONObject.get("configurationVal") instanceof JSONArray) {
timingArray = getJSONObject.getJSONArray("configurationVal");
hasTiming = true;
} else {
configVal = getJSONObject.getString("configurationVal");
}
String configName = getJSONObject.getString("configurationName");
int configId = getJSONObject.getInt("configurationId");
if (hasAreas) {
System.out.println("ConfigVal: " + configVal + ", ConfigName: " + configName + ", ConfigId: " + configId + ", AreaInformation: " + configArray);
}
if (hasTiming) {
System.out.println("ConfigVal: " + configVal + ", ConfigName: " + configName + ", ConfigId: " + configId + ", TimingInfo: " + timingArray);
}
if (!hasAreas && !hasTiming) {
System.out.println("ConfigVal: " + configVal + ", ConfigName: " + configName + ", ConfigId: " + configId);
}
//Reset these...
hasAreas = false;
hasTiming = false;
configVal = null;
}
} catch (JSONException e) {
e.printStackTrace();
}
Это напечатает следующее.
ConfigVal: 2.5, ConfigName: CGST, ConfigId: 1
ConfigVal: 2.5, ConfigName: SGST, ConfigId: 2
ConfigVal: 0, ConfigName: DELIVERY_CHARGE, ConfigId: 3
ConfigVal: 9500100042,8939404592, ConfigName: Admin_Mobile, ConfigId: 4
ConfigVal: 98, ConfigName: MIN_ORDER_AMOUNT, ConfigId: 5
ConfigVal: 3, ConfigName: Packing_charge, ConfigId: 6
ConfigVal: , ConfigName: available_areas, ConfigId: 7, AreaInformation: [{"area_name":"Velachery","pincode":"600042","area_id":"1"},{"area_name":"Nanganallur","pincode":"600061","area_id":"2"},{"area_name":"Adambakkam","pincode":"323546","area_id":"3"},{"area_name":"Madipakkam","pincode":"600091","area_id":"4"},{"area_name":"Perungudi","pincode":"600096","area_id":"5"},{"area_name":"Pallikarani","pincode":"600100","area_id":"6"}]
ConfigVal: , ConfigName: order_timing, ConfigId: 8, TimingInfo: [{"start_time":"17: 00: 00","end_time ":"03: 00: 00"}]
Теперь, если вы видите, доступные_пакеты и order_timing не обрабатываются. Однако я дал вам информацию в JSONArray. Поэтому вы можете следить за тем, что я сделал, и разобрать его. Однако я бы использовал модель для этого со списком <>. С ним было бы легче работать.