2014-06-05 2 views
0

일부 구조에서는 Json이 있고 그 구조는 변경 될 수 있습니다. 열쇠를 OnOff는 객체 나 배열을 가질 수 있습니다,이 같은 배열 할 수 있습니다 :Json에서 객체를 가져올 때 restlet 사용 방법 Json이 구조를 chonges 할 때 다른 객체를 얻을 수 있습니까?

"OnOff": [ 
       { 
      "state": { 
        "last_update": 1401855332, 
        "value": "off" 
        } 
       } 
     ] 

을 아니면은이 같은 개체를 가질 수 있습니다

"OnOff": 
      { 
      "state": { 
        "last_update": 1401855332, 
        "value": "off" 
        } 
      } 

아이디어는 읽기입니다 json을 Android 용 Restlet을 사용하여 객체로 변환합니다. 개체와 인터페이스를 사용 I'am 어레이의 경우의 클래스에 의해 정의된다 :

public class Capability { 
    public Processor OnOff; 
    public Capability(){} 
} 

플러스 인터페이스와 코드를 검색 할 :

public class Capability { 
    public List<Processor> OnOff;// or Processor[] 
    public Capability(){} 
} 

대상물 케이스는로 정의되고 목적.

두 정의 중 하나에서 정의가 작동하지만 다른 것은 정의되지 않습니다. 배열이나 객체로 동시에 동작 할 수있는 래퍼 또는 다른 것을 선언하는 방법이 있습니까? 지도를 사용하는 것처럼 restlet으로 객체를 읽는 또 다른 접근법이 있습니까?

참고 : 정말 ... 수동으로 아무것도 구문 분석

답변

0

당신은 자원 # toObject를 호출 할 수 있습니다 (표현, Target1.class | Target2.class) 원하지 않는 두 클래스로 변환 할 수 있습니다.

그러나 단일 및 다중 항목을 모두 처리 할 수있는 두 번째 Capability 클래스에 의존 할 수있는 이유는 분명하지 않습니다. 서버를 제어하지 못할 수도 있습니다.

또 다른 옵션은 잭슨 주석,베이스 추상적 인 기능 클래스와 두 개의 서브 클래스 https://github.com/FasterXML/jackson-annotations

+0

예를 추가하는 것입니다, 나는 서버 측의 제어가 없습니다. –

+0

그냥 설명서를보고 작동해야합니다, 여전히 방법을 이해할 수 없습니다 : // JSON 속성 "클래스"로 Java 클래스 이름 ("com.myempl.ImplClass") 포함 –