2017-02-09 7 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

件のデータは何ですか? – 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"); 

に到達

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を作成し、そのクラス内のすべてのパラメータ(ゲッタとセッタ)を取得します。それから、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"); 

とします。あなたは

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

あなたが同様の配列を通過することができます(例えば '0')特定のインデックスにあるオブジェクトを取得したい場合

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構造:)

関連する問題