如何在异步调用Java

时间:2019-10-25 12:32:41

标签: android json

我有一种情况,我从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行之前,应该包含要约明细行数据的行

0 个答案:

没有答案