2017-11-22 2 views
0

다음과 같은 문제로 머리를 나눌 것입니다.Gson으로 중첩 구조체를 직렬화하십시오.

"err": { 
    "IoTMessageServiceImpl": { 
     "Connection lost": 1, 
     "Could not reconnect client": 9 
    }, 
    "Messaging": { 
     "Message not sent: Client is not connected": 1 
    } 
} 

는 기본적으로,이 중첩 된 맵의 목록을 포함하는 객체 ERR입니다 : 우리는 다음과 같은 반환하는 서비스가있다. IoTMessageServiceImpl 및 Messaging의 요소 키 및 값은 가변적입니다. 그래서지도 목록이있는 IoTMessageServiceImpl과 Messaging이라는 두 개의 객체를 만들어야한다는 것을 알고 있습니다. 그러나, 나는 올바른 방식으로 자바 에서이 구조를 얻을 수 없습니다.

"err": { 
    "IoTMessageServiceImpl": { 
     "IoTMessageServiceImpl": [null,null] 
    }, 
    "Messaging": { 
     "message": [null] 
    } 
} 

사람이 내가 GSON와 올바른 출력을 얻기 위해 내 수업을 구성하는 방법에 대한 아이디어가 있습니까

: 내가 온 가장 가까운 나에게 다음과 같은 출력을했다? 미리 감사드립니다.

감사

+0

를 시도? –

+1

지도의지도입니다 .. class err {HashMap > IoTMessageServiceImpl; HashMap > 메시징; \t "ERR": { \t \t "IoTMessageServiceImpl": { \t \t \t "IoTMessageServiceImpl": { \t \t \t \t "클라이언트를 다시 연결할 수 없습니다": 클래스 구조를 사용} – Uttam

+0

, 나는 다음과 같은 무엇입니까 9 \t \t \t} \t \t}, \t \t "메시징": { \t \t \t "메시징 ": { \t \t \t \t"메시지가 전송되지 않음 : 클라이언트가 연결되어 있지 않습니다 ": 1 \t \t \t} \t \t} \t} – Homewrecker

답변

0

다음을 사용하여 해결했습니다. 덕분에 나에게 올바른 방법 @Uttam

을 선도하기위한
private HashMap<String, Integer> IoTMessageServiceImpl; 
private HashMap<String, Integer> Messaging; 
1

{ "연결이 끊어": 1, "클라이언트를 다시 연결할 수 없습니다": 9 }

{ "메시지하지 전송 : 클라이언트가 연결되어 있지 않습니다" : 1 }

는지도의 목록이 아닙니다. 지도입니다.

-1

당신은 자바 클래스가이 GSON를 매핑 할이

class ErrorDTO { 
    private IoTMessageServiceImplDTO IoTMessageServiceImpl; 
    private MessagingDTO messaging; 
} 


class IoTMessageServiceImplDTO { 
    ArrayList<String> IoTMessageServiceImpl; 
} 

class MessagingDTO { 
    ArrayList<String> IoTMessageServiceImpl; 
} 
관련 문제