how to read below JSON properly to store in Model
{
"data": {
"success": "true",
"orders": [
{
"orderId": "5",
"prefix": "OID-MKFQ7-00000",
"status": "C",
"createdOn": "2018-03-30 16:21:59",
"createdBy": "1016",
"tax": "21.20",
"shippingCharges": "0.00",
"deliveryCode": "",
"shopId": "3",
"amount": "291.2",
"subTotal": "270",
"discount": "0",
"couponCode": "",
"productDetails": [
{
"productId": "44",
"storeId": "3",
"productName": "Tata Sampann Toor Dal ",
"quantity": "5",
"productAmount": "54.00",
"totalAmount": 270,
"optionDetails": {
"optionId": "49",
"optionName": "Available in (Units):500 gm",
"optionAmount": "54"
}
}
],
"userAddressDetails": {
"firstName": "",
"middleName": "",
"lastName": "",
"email": "9284314578@mailinator.com",
"mobileNo": "9284314578",
"address": "Savali Society Rd",
"landMark": "Industrial Estate",
"city": "Ichalkaranji",
"zipCode": "416117",
"stateName": "Maharashtra",
"countryName": "India",
"latitude": "16.719247500000016",
"longitude": "74.45389453124999"
}
},
{
"orderId": "6",
"prefix": "OID-G4KHX-00000",
"status": "C",
"createdOn": "2018-04-10 17:45:22",
"createdBy": "1011",
"tax": "42.41",
"shippingCharges": "0.00",
"deliveryCode": "",
"shopId": "3",
"amount": "582.41",
"subTotal": "540",
"discount": "0",
"couponCode": "",
"productDetails": [
{
"productId": "44",
"storeId": "3",
"productName": "Tata Sampann Toor Dal ",
"quantity": "10",
"productAmount": "54.00",
"totalAmount": 540,
"optionDetails": {
"optionId": "49",
"optionName": "Available in (Units):500 gm",
"optionAmount": "54"
}
}
],
"userAddressDetails": {
"firstName": "test",
"middleName": "",
"lastName": "test",
"email": "test@test.com",
"mobileNo": "8446363349",
"address": "New Shahupuri, 204, Kolhapur Station Rd",
"landMark": "Tarabai Park",
"city": "Kolhapur",
"zipCode": "416001",
"stateName": "Maharashtra",
"countryName": "India",
"latitude": "16.704987299999996",
"longitude": "74.24325270000001"
}
}
]
}
}
I tried
{
final JSONObject output = response.getJSONObject("data");
if (output.getString("success").equalsIgnoreCase("true")) {
final JSONArray orderDetails = output.getJSONArray("orders");
for (int i = 0; i < orderDetails.length(); i++) {
// Get single order object
JSONObject orderData = orderDetails.getJSONObject(i);
// Get product details object
JSONArray products = orderData.getJSONArray("productDetails");
for (int k = 0; k < products.length(); k++) {
JSONObject productData = products.getJSONObject(k);
JSONObject optionData = productData.getJSONObject("optionDetails");
ProductDetailsModel product = new ProductDetailsModel(
productData.getString("productId"),
productData.getString("storeId"),
productData.getString("productName"),
productData.getString("quantity"),
productData.getString("productAmount"),
productData.getString("totalAmount"),
optionData.getString("optionId"),
optionData.getString("optionName"),
optionData.getString("optionAmount")
);
productsList.add(product);
//System.out.println(productsList);
for (int j =0; j< productsList.size(); j++){
System.out.println("Hey data: "+productsList.get(j).getQuantity());
}
}
// Get user address object
JSONObject userAddress = orderData.getJSONObject("userAddressDetails");
UserAddressDetailsModel addressModel = new UserAddressDetailsModel(
userAddress.getString("firstName"), userAddress.getString("middleName"),
userAddress.getString("lastName"), userAddress.getString("email"),
userAddress.getString("mobileNo"), userAddress.getString("address"),
userAddress.getString("landMark"), userAddress.getString("city"),
userAddress.getString("zipCode"), userAddress.getString("stateName"),
userAddress.getString("countryName"), userAddress.getString("latitude"),
userAddress.getString("longitude"));
ordersList.add(addressModel);
Order order = new Order(orderData.getString("tax"),
orderData.getString("shippingCharges"),
orderData.getString("amount"),
orderData.getString("subTotal"),
orderData.getString("discount"),
orderData.getString("prefix"),
orderData.getString("createdOn"),
orderData.getString("couponCode"),
orderData.getString("orderId"),
orderData.getString("deliveryCode"),
orderData.getString("shopId"),
orderData.getString("createdBy"),
orderData.getString("status"),
productsList, addressModel);
orders.add(order);
}
adapter.notifyDataSetChanged();
} else{
Toast.makeText(getActivity(), output.getString("message"), Toast.LENGTH_LONG).show();
}
}
it result duplicate entries in child(productDetails) json array of nested parent(orders) json array.