2016-07-05 4 views
0

을 구문 분석 GSON을 사용할 수있는 방법이다,하는 String입니다 :값은 가끔 가끔 내 JSON str을 같은, 때로는 객체가 난 제목처럼 그것을

{ 
    "data": { 
     "changebaby": "no change", 
     "changemama": "no change" 
    } 
} 

당신이 보는대로 "changebaby"키 때로는 "changemama"키의 값은 때때로 객체 내가 GSON하여 분석하는 방법이다,하는 String입니다? 아무도 나를 도울 수 있습니까?


, json으로 문자열을 구문 분석 JSON 문자열을 구문 분석 구글의 GSON lib 디렉토리를 사용해야하는 안드로이드 API를 사용하지 마십시오, 누군가가 나를 도울 수 있을까?

+3

[url] (http://stackoverflow.com/a/13100642/2078074)을 확인하십시오. 희망이 당신을 돕는다. – Lawrance

+0

@Lawrance는'instanceof '로 확인해야합니다. – Mohit

답변

0

은 안드로이드 개발을 simplyfy하기 위해, 우리는 새로운 모바일 API.The을 변경하는 백엔드 개발자를 요청할 수 있습니다 API는 value를 변경할 수없는 json 문자열을 returen 할 수 있습니다. 모든 키의 값은 때때로 문자열이거나 때로는 객체 일 수 없습니다.

1

이 함께 시도 :

JSONObject changemama=jsonObject.optJSONObject("changemama"); 
    if(changemama== null){ 
     String str=jsonObject.optString("changemama"); 
} 
0

이 코드를 사용해보십시오.

JSONObject data; 
try { 
    data = jsonObj.getJSONObject("changemama"); 

    // do stuff 

} catch (JSONException e) { 
    data = jsonObj.getString("changemama"); 

    // do stuff 
} 
+0

프로그램이 충돌 할 확률은 50 %입니다 .. !! –

+0

어떻게 설명 할 수 있습니까? –

+2

개체가 문자열이거나 JSONobject가 보장되지 않을 수 있습니다. 그 중 아무 것도 해당 프로그램이 충돌하지 않습니다 대신'optString' 및'optJsonObject'를 사용하십시오 .. !! 그의 경우에는 –

1
if(jsonObject.optJSONObject("changemama") != null) 
{ 
    JSONObject changemama=jsonObject.optJSONObject("changemama"); 
    //Its JSON object, do appropriate operation 
} 
else if(jsonObject.optString("changemama") != null) 
{ 
    //Its string, do appropriate operation 
} 

당신은 부울 또는 int 또는 long 등의 가능성을 더 수있는 경우, 참조가 존재하는 경우 optJSONObject

이름으로 매핑 된 값을 돌려줍니다

this 그렇지 않으면 JSONObject 또는 입니다. 방식 lawrance로 이동

또는이 주신 : Determine whether JSON is a JSONObject or JSONArray

0

이 시도 :

if(obj.has("changemama")){ 
    if(obj.optString("changemama").length() > 0){} 
    else if(obj.optJSONObject("changemama").length() > 0){}}