难以识别json数据

时间:2017-02-09 08:20:59

标签: android 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值。

5 个答案:

答案 0 :(得分:2)

到达对象

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");
}

答案 1 :(得分:1)

要获得关键&#34;产品&#34;你应该这样做:

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

然后要获取productsObject中的值,您应该这样做:

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

等等。

答案 2 :(得分:1)

尝试以下代码:

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");

答案 3 :(得分:0)

这就是你获得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结构:)

答案 4 :(得分:-1)

您可以使用GSON库。

首先,您已创建Products.java并获取该类中的所有参数(Getters和setter)。然后只需使用Gson.fromJson()并将参数中的json作为字符串传递。

然后您可以使用product.getPname();

访问它

您可以使用以下链接创建您的java类。 http://www.jsonschema2pojo.org/