2017-02-09 1 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"); 

에 도달

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

Close,하지만 여전히 "Products"' –

+0

아를 가져야합니다. 어떻게 그랬습니까? 고마워 내 대답 –

0

GSON 라이브러리로 할 수 있습니다.

먼저 Products.java를 만들고 해당 클래스에서 모든 매개 변수 (Getters 및 Setters)를 가져옵니다. 그런 다음 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 구조 :

관련 문제