2016-05-08 8 views
0

У меня есть ответ JSON, как показано нижеразбора JSON с resttemplate

{ 
    "@odata.context": "some context value here", 
    "value": [{ 
     "@odata.id": "odata id value1", 
     "@odata.etag": "W/\"CQEet/1EgOuA\"", 
     "Id": "id1", 
     "Subject": "subject1" 
    }, { 
     "@odata.id": "odata id value2", 
     "@odata.etag": "W/\"CyEet/1EgOEk1t/\"", 
     "Id": "id2", 
     "Subject": "subject2" 
    }] 
} 

Как создать класс компонента (MyMessage) для разбора «значение» с помощью пружины resttemplate?

RestTemplate rest = new RestTemplate(); 
ResponseEntity<MyMessage> response = rest.exchange(url, HttpMethod.GET, entity, MyMessage.class); 

Помогло ли кто-нибудь помочь?

+0

Вы действительно уверены, что сможете сами справиться с этим делом? Я думаю, что вам не нужно отображать его, часть сервера OData найдет его сама и сделает все, что нужно сделать. –

+0

Я пытаюсь использовать почтовую почту api. У них нет java-клиента. https://msdn.microsoft.com/office/office365/api/mail-rest-operations#Getmessages. На клиенте нам нужно разобрать это сообщение, чтобы получить информацию о почте –

ответ

1

Аннотировать свойства bean с @JsonProperty, чтобы задать имя поля JSON для свойства, если оно отличается.

См:

JsonProperty annotation и When is the @JsonProperty property used and what is it used for?

Пример (свойства фасоли являются открытыми, например, простоты):

MyMessage Класс:

public class MyMessage { 

    @JsonProperty("@odata.context") 
    public String context; 

    @JsonProperty("value") 
    public Value[] values; 
} 

Значение Класс:

// PascalCaseStrategy is to resolve Id and Subject properties 
@JsonNaming(PascalCaseStrategy.class) 
public class Value { 

    @JsonProperty("@odata.id") 
    public String odataId; 

    @JsonProperty("@odata.etag") 
    public String odataEtag; 

    public String id; 
    public String subject; 
} 
+0

Awesome. Это сработало. Спасибо!! –

+0

Добро пожаловать! –

Смежные вопросы