2014-11-17 3 views
1

이것은 JSON 객체의 샘플입니다. 그 부분을 추출하여 JAVA의 jTable (SWING)에 표시하려고합니다. 테이블 열 이름과 값을 행 데이터로 각각 키.자바에서 JSON 객체의 일부를 추출하십시오.

[ 
    { 
     "_id":{ 
     "date":"xxxxxxxx", 
     "time":"xxxxxxx", 
     "inc":"xxxx" 
     }, 
     "DOCUMENTS":[ 
     { 
      "EName":"John", 
      "eAge":"25", 
      "eAddress":"UK" 
     }, 

     { 
      "EName":"Alex", 
      "eAge":"24", 
      "eAddress":"Australia" 
     } 
     ] 
    } 
] 

이 부분을 추출하고 싶습니다.

 [ 
     { 
      "EName":"John", 
      "eAge":"25", 
      "eAddress":"UK" 
     }, 
     { 
      "EName":"Alex", 
      "eAge":"24", 
      "eAddress":"Australia" 
     } 
     ] 

답변을 얻으려면이 방법을 사용했습니다. 여기서 jsonstring은 위의 데이터가 포함 된 문자열입니다.

 String[] splits = jsonString.split("DOCUMENTS\":"); 
     String[] splits2 = splits[1].split("\\}]", 2); 
     System.out.println("spilted :"+splits2[0]); 

하지만 나에게 그것은 폐쇄 대괄호를 제거

[{"EName":"John","eAge":"25","eAddress":"UK"}, 
{"EName":"Alex","eAge":"24","eAddress":"Australia" 

과 답을주고있다.

어떻게 정답을 얻을 수 있습니까? 귀하의 도움을 많이 주시면 감사하겠습니다. 대신 split()를 사용

+1

왜 JSON 파서를 사용하고'Documents' JSONArray를 가져 오지 않습니까? – EpicPandaForce

+0

JSONPointer를 쿼리에 사용할 수 있습니다 :'/ 0/DOCUMENTS' –

+0

'닫힌 대괄호를 제거했습니다 '- u가 "}}"-'split2'에 나뉘어졌습니다. –

답변

0

는 사용

int index= splits[1].indexOf("\\}]"); 
String result = splits[1].substring(0,index); 
1

이 간단한 튜토리얼에서 살펴 보자 : http://wiki.fasterxml.com/JacksonInFiveMinutes http://www.tutorialspoint.com/json/json_java_example.htm

예 :

import java.io.IOException; 
import java.util.HashMap; 
import java.util.Map; 

import com.fasterxml.jackson.core.type.TypeReference; 
import com.fasterxml.jackson.databind.ObjectMapper; 

public class KroplaTest { 
    private static final String JSON = "{\"id\":{ " 
      + "\"date\":\"xxxxxxxx\"," 
      + "\"time\":\"xxxxxxx\"," 
      + "\"inc\":\"xxxx\"" 
      + "}," 
      + "\"documents\":[" 
      + "{" 
      + " \"eName\":\"John\"," 
      + " \"eAge\":\"25\"," 
      + " \"eAddress\":\"UK\"" 
      + "}," 
      + "{" 
      + " \"eName\":\"Alex\"," 
      + " \"eAge\":\"24\"," 
      + " \"eAddress\":\"Australia\"" 
      + "} ]} "; 

    public static void main(String[] args) { 
     final ObjectMapper mapper = new ObjectMapper(); 
     try { 
      Map<String,Object> map = new HashMap<String,Object>(); 
      map = mapper.readValue(JSON, new TypeReference<HashMap<String,Object>>(){}); 
      System.out.println(map.get("documents").toString()); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

이 SYSOUT로 인쇄됩니다

[{eName=John, eAge=25, eAddress=UK}, {eName=Alex, eAge=24, eAddress=Australia}] 
관련 문제