2017-04-25 3 views
1

내가 모든 뮤추얼 펀드의 배열을 반복하는 가져 속성을 시도하고 어떻게 다른 헤더

[{ 
"mutualFund":{"fundCode":"XYZ","fundName": "Funds - Global Income 
Fund (G)-SGD","isin":"LU0882574725","sedol":"1234"}}, 

{"brokers":{"fundID":"abcd","fundName":"Funds - Focus 
    Fund A-USD","isin":"LU0197229882","sedol":"6543"} 
}] 

처럼 응답 나머지 웹 서비스에서 JSON 배열을 얻고 여러 JSON 객체를 가진 JSON 배열을 반복하는 자신의 값. 이 코드 스 니펫을 시도했지만 반환 오류 - "mutualFund는 존재하지 않습니다." 내 json 파일에서 일부 개체는 mutualfund 형식이며 일부는 다른 특성을 가진 다른 형식이므로 둘 다 반복하고 구분해야했습니다. 그래서 나는 getJSONObject (i)를 사용할 수 없다. 당신이 사용하고있는 클래스와 메소드를 바탕으로

JSONArray jsonArray=new JSONArray(response.getBody()); 
    for(int i=0;i<jsonArray.length();i++){ 
    JSONObject jsonObject=jsonArray.getJSONObject("mutualFund"); 
    } 
+0

어떤 json 라이브러리를 사용하고 있습니까? –

답변

2

, 나는 당신이 org.primefaces.json 클래스를 사용 있으리라 믿고있어. 하지만 다른 API를 사용하는 경우에도 로직은 기본적으로 동일합니다. 우선

, 당신의 JSON 구조를 보면 :

[ 
    { 
    "mutualFund": { 
     "fundCode": "XYZ", 
     "fundName": "Funds-GlobalIncomeFund(G)-SGD","isin":"LU0882574725","sedol":"1234" 
    } 
    }, 
    { 
    "brokers": { 
     "fundID": "abcd", 
     "fundName": "Funds-FocusFundA-USD","isin":"LU0197229882","sedol":"6543" 
    } 
    } 
] 

그것은 두 요소를 가진 배열이다. 첫 번째 요소는 하나의 키 (mutualFund)와 그 값 (fundCodefundName 키를 가진 다른 객체)을 가진 객체입니다. 객체 이고 키는 mutualFund이며, 객체 자체가 인 경우mutualFund 인 것처럼 처리하려고합니다. 그것이 오류의 원인입니다.

모든 mutualFund 개체를 얻으려면 배열의 모든 요소를 ​​검사해야하며 각 요소에 대해 mutualFund 키가 있는지 확인해야합니다.

for (int i = 0; i < jsonArray.length(); i++) { 
    // get object i 
    JSONObject jsonObject = jsonArray.getJSONObject(i); 
    // check if object has mutualFund key 
    if (jsonObject.has("mutualFund")) { 
     // get mutualFund object and do something with it 
     JSONObject mutualFund = jsonObject.getJSONObject("mutualFund"); 
     // do something with mutualFund object (you can get values for fundCode and fundName keys, etc) 
    } 
} 

: 다른 JSON API를 사용하는 경우, 메소드 이름은 어떤 용도 containsKey, 또는 get(key) != null하지만, 논리 대신 has의 (다를 수 있습니다 그런 다음 코드는 다음과 같을 것 찾을 mutualFund 개체가 동일합니다).

+0

org.json lib를 사용하고 있습니다. –

+0

'org.json'의 경우 코드는 동일합니다. 테스트 해 봤어? –

관련 문제