2015-01-23 1 views
0

Retrofit을 사용하여 REST API를 사용하고 있습니다. JSON 객체를 받아서 인쇄 할 수 있습니다. 동적으로 중첩 된 단순 유형의 Java 객체로 변환하려고합니다.JSON REST에서 단순 유형의 Java 객체를 동적으로 빌드하십시오.

즉 Java 객체가 JSON 객체 (Python의 json.loads와 유사)를 기반으로 동적으로 작성된 중첩 된 Map, Array, String, Int/Double, Boolean 및 null로 구성되기를 원합니다. 나는 이것을 위해 잭슨을 사용하려고 시도하고있다. 여기에 내가 가진 무엇 :

API api = APIHandler.getApiInterface(); 
api.getFoo(new Callback<Object>() { 
    @Override 
    public void success(Object o, Response response) { 
     Log.i("Tag", "Print JSON " + o.toString()); 

     ObjectMapper mapper = new ObjectMapper(); 
     Map<String, Object> json = mapper.readValue(o, Map.class); 

    } 

    @Override 
    public void failure(RetrofitError error) { 

    } 
}); 

json으로이 기록하지만 라인 mapper.readValue(o, Map.class);는 "방법을 확인할 수 없습니다"오류를 제공한다. 반환 유형을 String으로 변경하면 더 많은 문제가 발생합니다.

어떻게해야할까요?

+0

안드로이드가 코어 API를 사용하는 이유는 무엇입니까? http://developer.android.com/reference/org/json/JSONObject.html#JSONObject(java.lang.String) –

+0

여기 좀 비교가 있습니다 : http://java.dzone.com/articles/be-lazy-productive-android – WojciechKo

+0

팁 주셔서 감사합니다. JSONObject는 내가 찾고있는 것에 가깝지만 clunky 같다. 나는 자바에서 JSON을 POJO로 변환해야한다고 생각하기 시작했다. – Calvin

답변

0

Insted Object o 사용자 정의 클래스를 사용하십시오. 새 Callback<Object> 대신 new Callback<MyMapper>을 사용하십시오.

예컨대

관련 문제