2011-11-13 5 views
7

json 객체에서 값을 가져 오려고합니다. 어떻게 세 번째 수준의 JSON 개체를 얻을 것 하나는 얻을에 내가단일 get에서 중첩 된 json 데이터에 액세스 하시겠습니까?

JSONObject jsonFeed = new JSONObject(feedString); 
jsonFeed.get("level1.level2.level3.valueIWant"); 

중첩 얻을 수있는 수준 :

feedString = {"level1":[{"level2":{"level3":{"valueIWant":10}}}]} 

코드는 다음과 같습니다

JSON 형식은 같다? 내 열쇠는 어떻게 생겼을 까?

+0

어떤 JSON 라이브러리 :

private Map<String, Object> json; 

당신이 필요로하는 모든이 (파서는 그렇게 할 수 있습니다)? –

+0

com.google.appengine.repackaged.org.json.JSONObject; – Lumpy

+0

그것이 클래스입니다. 저는 실제 라이브러리를 의미했지만, 충분하다고 생각합니다. –

답변

5

JSONiJ (JSON in Java)을 촬영할 수 있습니다. 이것은 JSONPath의 Java 버전이며 기본적으로 XPath 구문을 JSON 객체에 매핑합니다 (하위 집합).

또한 다른 아이디어는 this SO question을 참조하십시오. json-path에는 Java 버전이 있고 도트 표기법이 사용됩니다.

다른 옵션은 JSONObject와 MVEL 또는 OGNL 사이에 EL 브리지를 구축하여 더 친숙한 점 표기법을 제공합니다. MVEL/JSON 브리지가 있다고 생각했지만 지금은 찾을 수 없습니다.

2

시간이 지났지 만 몇 가지 좋은 소식이 있습니다. 그냥 beanutils을 시도하고 그것은 매력처럼 작동합니다! 당신은 JSON이지도로 변환해야 가정 :

PropertyUtils.getProperty(json, "level1.level2.level3.valueIWant") 

재미 되세요 :)

관련 문제