难以识别 json 数据



我有下面提到的json数据。

{  
"data":[  
  {  
     "Products":{  
        "id":"86",
        "pname":"mi4",
        "pcat":"9",
        "subcat":"8",
        "seccat":"0",
        "oproduct":"1",
        "pdetails":"Good phone",
        "pprice":"10000",
        "pdiscount":"10",
        "qty":"1",
        "qtytype":"GM",
        "dcharge":"40",
        "pimage":null,
        "sname":"Easydeal",
        "sid":"1100",
        "size":"",
        "pincode":""
     }
  }
 ]
}

我可以将数组识别为getJSONArray("datas")。但我想获得pnamesname值。

只需到达对象

JSONObject resp=new JSONObject("response");
JSONArray data=resp.getJSONArray("data");

现在,如果您想在特定索引处获取对象(例如"0"(

JSONObject objAt0=data.getJSONObject(0);
JSONObject products=objAt0.getJSONObject("products");
String pName=products.getString("pname");

您可以类似地遍历数组

for(int i=0;i<data.lenght();i++){
    JSONObject objAtI=data.getJSONObject(i);
    JSONObject products=objAtI.getJSONObject("products");
    String pName=products.getString("pname");
}

要获得关键"产品",您应该执行以下操作:

JSONObject productsObject = YOUROBJECTNAME.getJSONArray("data").getJSONObject(0).getJSONObject("Products");

然后要获取产品中的值对象,您应该执行以下操作:

productsObject.getString("id");
productsObject.getString("pdetails");

等等。

尝试以下代码:

JSONObject object = new JSONObject(result);
JSONArray array = object.getJSONArray("data");
JSONObject object1 = array.getJSONObject(0);
JSONObject products = object1.getJSONObject("Products");
int id = object1.getInt("id");
String pname = object1.getString("pname");

这是你获得 pname 和 sname 的方式:

        JSONObject jsonObject = new JSONObject();
        JSONArray jsonArray;
        try {
            jsonArray = jsonObject.getJSONArray("data");
            for(int counter = 0; counter <jsonArray.length(); counter++){
                JSONObject jsonObject1 = jsonArray.getJSONObject(counter);
                JSONObject products = jsonObject1.getJSONObject("Products");
                String pname = products.getString("pname");
                String sname = products.getString("sname");
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

PS:糟糕的JSON结构:)

最新更新