我有一种情况,我从Android应用程序中的API获取嵌套的JSON数组。实际上,我正在通过从JSON检索的数据制作表格。 现在这是我的JSON
{"ID":"2357","ItemName":"PAN PAIRA","Qty":"1","TotAmt":"590","UOM":"Kg","CategoryName":"SWEET","BranchName":"IQBAL TOWN","Image":"P420190508091430.png","UomQty":"1.00","Type":"Product","ProdID":"4"},
{"ID":"2358","ItemName":"SPECIAL MOTI CHOR LADU","Qty":"1","TotAmt":"590","UOM":"Kg","CategoryName":"SWEET","BranchName":"IQBAL TOWN","Image":"P2520190508092423.png","UomQty":"1.00","Type":"Product","ProdID":"25"},
{"ID":"2356","ItemName":" (Offer:BREAKFAST OFFER 2)","Qty":"1","TotAmt":"380","UOM":" ","CategoryName":"Offer","BranchName":"IQBAL TOWN","Image":"-20190422073545-MBOFFER-2.jpg","UomQty":"0.00","Type":"Offer","ProdID":"6",
"OfferDetail":[
{"ID":null,"ProdID":"858","Qty":"1","OfferID":"6","UOM":null,"CategoryName":null,"BranchName":null,"Image":null,"UomQty":null},
{"ID":null,"ProdID":"851","Qty":"1","OfferID":"6","UOM":null,"CategoryName":null,"BranchName":null,"Image":null,"UomQty":null},
{"ID":null,"ProdID":"565","Qty":"1","OfferID":"6","UOM":null,"CategoryName":null,"BranchName":null,"Image":null,"UomQty":null},
{"ID":null,"ProdID":"853","Qty":"1","OfferID":"6","UOM":null,"CategoryName":null,"BranchName":null,"Image":null,"UomQty":null}]},
{"ID":"2355","ItemName":" (Offer:BREAKFAST OFFER 1)","Qty":"1","TotAmt":"235","UOM":" ","CategoryName":"Offer","BranchName":"IQBAL TOWN","Image":"4-20190422072912-OFFER-1.jpg","UomQty":"1.00","Type":"Offer","ProdID":"4",
"OfferDetail":[
{"ID":null,"ProdID":"851","Qty":"1","OfferID":"4","UOM":null,"CategoryName":null,"BranchName":null,"Image":null,"UomQty":null},
{"ID":null,"ProdID":"439","Qty":"1","OfferID":"4","UOM":null,"CategoryName":null,"BranchName":null,"Image":null,"UomQty":null},
{"ID":null,"ProdID":"102","Qty":"1","OfferID":"4","UOM":null,"CategoryName":null,"BranchName":null,"Image":null,"UomQty":null},
{"ID":null,"ProdID":"854","Qty":"1","OfferID":"4","UOM":null,"CategoryName":null,"BranchName":null,"Image":null,"UomQty":null}]}
您可以清楚地看到,在前两个数据字段中没有对象OfferDetail,但是在第3和第4个字段中是一个JSON对象OfferDetail,它进一步包含一个数组。现在这就是我处理数据的方式
if(!returnJson.contains("No Record")) {
JSONArray jsonArray = new JSONArray(returnJson.replace("null", "''"));
csDeliveredOrderDetailRow csorderDetailRow = new csDeliveredOrderDetailRow(activity);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);//returnJson;
TableRow Tr;
JSONObject OFFER_DETAIL = jsonObject.getJSONObject("OfferDetail");
String ID = OFFER_DETAIL.getString("ID");
String Qty = OFFER_DETAIL.getString("Qty");
String UOM = OFFER_DETAIL.getString("UOM");
String CategoryName = OFFER_DETAIL.getString("CategoryName");
String BranchName = OFFER_DETAIL.getString("BranchName");
String Image = OFFER_DETAIL.getString("Image");
String UomQty = OFFER_DETAIL.getString("UomQty");
Tr = csorderDetailRow.AddOrderRow(jsonObject.getInt("ID")
, jsonObject.getString("Type")
, jsonObject.getString("ItemName")
, jsonObject.getString("Qty")
, jsonObject.getString("TotAmt")
, jsonObject.getString("UOM")
, jsonObject.getString("CategoryName")
, jsonObject.getString("BranchName")
, jsonObject.getString("Image")
, jsonObject.getString("UomQty") //Here I am not fetching offer detail from json and everything is working fine
//
);
tableLayout.addView(Tr);
}
}
我制作了一个新的Java类,用于以表布局显示数据
public TableRow AddOrderRow(final int _ItemID, final String _Type, final String _ItemName, final String _Qty, final String _TotAmt, final String _UOM, final String _CategoryName, final String _BranchName, final String imageName, final String UomQty)
{
//Here i m making dynamic textviews and showing them in table
}
现在,当我获取包含商品详细信息的json行时,我想要的问题...在该行下应包含商品详细信息,并且这些行包含商品详细信息数组的数据。例如
第1行没有JSON中提供的offerdetail对象 第2行没有JSON中提供的offerdetail对象 第3行具有JSON中的offerdetail对象 因此,在表格中插入第4行之前,应该包含要约明细行数据的行