2015-02-02 4 views
0

나는 미래의 프로그램을 다른 언어로보다 쉽게 ​​번역 할 수있는 동적 텍스트 잡기 시스템을 만들려고 노력해 왔습니다. 저는 Java에 대해 상당히 익숙하지 않기 때문에 데이터 유형에 정통하지는 않지만 JSON 객체 (simple.json 사용)를 사용하여 쉽게 참조 할 수있는 것으로 변환 할 수 있습니다. 간결하게? 예를 들어JSON 객체를 객체 맵으로 변환하는 방법은 무엇입니까?

는 JSON 문자열을 주어진 :

JohnClass.family.immediate.children[0].name 

을 대가로 값을 얻을 : 내가 지금처럼 참조 할 수 있도록 내 파일을 설정할 수있는 방법을

{ 
    "name": "John Doe", 
    "country": "US", 
    "age": 25, 
    "family": { 
     "immediate": { 
      "spouse": "Johnette Doe", 
      "children": [ 
       { 
        "name": "Jimbles Doe", 
        "age": "213" 
       } 
      ] 
     } 
    } 
} 

?

+0

simple.json을 사용하지 마십시오. JSONPath를 사용하십시오. –

+0

일부 라이브러리 (Jackson, gson 등)를 살펴보십시오. –

답변

1

은 (받는다는 종속성을 사용하거나 항아리를 다운로드 중) 잭슨을 가져 오기 : http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.5.0

테스트되지 않은 코드를 아래에, 그리고 당신이 신속하게 정렬 할 수 있도록, 정직 노력 펀트합니다. (이상적으로 생성자)

인스턴스화 JSONMapper :

ObjectMapper mapper = new ObjectMapper(); 

변환이 (당신은 또한 다른 개체로 변환 할 수 있습니다) 해시 맵하기 위해이 같은

Map map = mapper.readValue("JSON_STRING_HERE", new TypeReference<HashMap>(){}); 

액세스 :

map.get("family").get("immediate").get("children").get(0).get("name"); 

Map 인터페이스도 구현하는 JSONObject를 사용할 수도 있지만, 익숙하다면 이렇게하면 다른 객체를 위해 어떻게하는지 알 수 있습니다.

관련 문제