2014-10-23 2 views
1

나는 현재 알 수없는 키가있는 JSON 객체를 어떻게 파싱 할 수 있습니까?

는 기본적으로 키를 가진 개체를 가진 개체입니다 ..이

{ 
    success: true, 
    data: { 
     acdc-key1: [{ 
      id: acdc-key1, 
      othervar: stuff, 
      foo: bar 
     }], 
     r2d2-key2: [{ 
      id: r2d2-key2, 
      othervar: thing, 
      foo: mu 
     }] 
    } 
} 

등과 같은 타사 API에서 JSON을 다시 받고 있어요, 그 키 배열을 가지고 개체.

API의 응답을 JAVA 개체로 변환하는 데 mapper를 사용하고 있지만 올바르게 매핑 할 수 있도록 클래스를 구성하는 방법을 잘 모르겠습니다.

주요 문제는 항상 변경되고 필드가 설정되지 않는 긴 키 배열입니다.

답변

3

Jackson을 사용하여 대신 JSON 구문 분석 트리를 만들 수 있습니다. 이것은 JSON을 나타내지 만 POJO가 아닌 객체와 속성의 트리로 나타나는 Java 객체 집합입니다.

그런 다음 관심있는 속성을 찾기 위해 트리를 탐색 할 수 있습니다. 관심있는 속성에 대한 getter 및 setter가 있지만 내부적으로 개체 트리를 사용하여 해당 속성에 액세스하는 래퍼 클래스를 만들 수도 있습니다. 원시 JSON의 값. How do you tree walk JSON via Jackson 2 JsonNode?

+1

http://wiki.fasterxml.com/JacksonInFiveMinutes#Tree_Model_Example - 읽기 및 즐기기 –

+0

감사합니다. 아직 정보가 누락되었습니다. JsonNode.get/.path를 사용하여 개체 값을 미리 알 수 없으므로 어떻게 처리 할 수 ​​있습니까? – Bob

+0

밥 당신이 알지 못하는 것을 어떻게 얻을 수 있습니까? – Nimrod007

0

당신은 항상 예를 ​​GSON을 위해 사용하는 JSON에서지도 객체를 가져 (라이브러리를 구글의) 수 -

여기에 관련된 질문이있는 것 같습니다. 그리고 알고있는 키만지도에서 가져 오십시오.

관련 문제