2017-02-09 71 views
-1

我有如下所述的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的值。

+0

是什麼DATAS? – Aryan

+0

[如何解析Java中的JSON]可能的重複(http://stackoverflow.com/questions/2591098/how-to-parse-json-in-java) –

+0

[如何在Android中解析JSON]可能的重複( http://stackoverflow.com/questions/9605913/how-to-parse-json-in-android) –

回答

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

關閉,但你仍然需要獲得''產品'' –

+0

啊,我怎麼錯過了。謝謝更新了我的答案 –

0

您可以使用GSON庫來實現。

首先,您已經創建Products.java並將該類中的所有參數(Getters和setter)取出。然後使用Gson.fromJson()並將參數中的json作爲字符串傳遞。

然後,您可以使用product.getPname()訪問它;

你可以使用下面的鏈接來創建你的java類。 http://www.jsonschema2pojo.org/

+1

Gson是這樣一個簡單的問題的過度殺傷... –

1

爲了讓到關鍵的 「產品」,你應該做的:

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

然後獲得在productsObject你應該做的值:

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

等。

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"); 
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結構:)