我有如下所述的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")
。但我想获得pname
和sname
值。
答案 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/