2016-07-14 4 views
0

죄송합니다. 여러 가지를 시도했으며 몇 가지 문제가있는 것으로 보입니다. 이것은 간단해야합니다.두 필드가 같을 때 JSON을 Java로 파싱 하시겠습니까?

JSON 파일 :

{ 
    "content": [ 
    { 
     "media_type": "text/html", 
     "text": "<p>Hello world</p>" 
    }, 
    { 
     "media_type": "text/plain", 
     "text": "Hello world" 
    } 
    ], 
    "id": "123", 
    "title": "no-title" 
} 

나는 된 JSONObject이 문자열에서 만들었습니다.

은 내가 시도 -

String txtFromJSON = json.getJSONObject("content").getJSONObject("text").toString(); 


String txtFromJSON = json.getString("content.text"); 

String txtFromJSON = json.getString("content"); 

이러한 프로그램은 모두 실패합니다. 내가 좋아하는 것

출력은 단순히 첫 번째 텍스트 필드에서

<p>Hello world<p>

입니다.

이 데이터를 변수에 저장하는 간단한 방법이 있습니까?

감사합니다.

+0

'content' 블록 배열이 아닌 객체 - 당신은'getJSONArray'를 사용해야 것처럼 들린다. 문제를 보여주는 짧지 만 완전한 프로그램을 사용하면 쉽게 도움을 얻을 수 있습니다. –

답변

-2

이 시도 :

final JSONObject obj = new JSONObject(youJsonString); 
final JSONObject content = obj.getJSONArray("content"); 
final int n = content.length(); 
if(n ==1){ 

String txtFromJSON = json.getString("text"); 

} 
+1

왜 그들은 그것을 시도해야합니까? 그게 무슨 차이가 있니? 그들의 코드가 왜 잘못 되었습니까? –

+0

@SotiriosDelimanolis에 동의합니다. 두 번째로 답변이 완전히 잘못되었다고 생각하는 이유에 대해 답변에 전혀 내용을 제공하지 않습니다. – basic

+0

이 줄에서 문자열 txtFromJSON = json.getString ("content"); 그는 Array를 얻으려고하지만 첫 번째 텍스트 필드 ("json.getString ("text ");)의 문자열"Hello world "만 받기를 원합니다. – ruru