Я пишу Restful webservice, который получит данные в следующем формате.Разбор json в несколько java pojos
{
"myOrder": {
"submitDate": "2015-04-16T02:52:01.406-04:00",
"supplier": "Amazon",
"orderName": "Wifi Router",
"submittedBy": "Gaurav Varma",
"price": {
"value": "2000",
"currency": "USD"
},
"address": {
"name": "My home",
"address": "Unknow island",
"city": "Mainland China",
"state": "Xinjiang",
"contact": {
"firstName": "Gaurav",
"lastName": "Varma",
"phone": "000-000-0000",
"email": "[email protected]"
}
}
}
}
Чтобы прочитать эти данные, я рассматриваю рамки Джексона или GSON. Самый простой способ - использовать Java POJO, который имеет ту же структуру, что и запрос json. Но для меня структура Java POJO отличается. У меня есть четыре различных POJO, как указано ниже:
Submitter.java
- SubmittedBy
- SubmitDate
Order.java
- Supplier
- OrderName
Price.java
- Value
- Currency
Address.java
- Name
- Address
- City
- State
Contact.java
- FirstName
- LastName
- Phone
- Email
Вопрос: Есть ли способ разбора JSON один раз в пять различных POJOs. Может быть какой-то подход, основанный на аннотациях, где мы можем сопоставить json-атрибут с соответствующим атрибутом pojo? Любые рамки доступны для него?
Заранее благодарен!
Если вы используете gson, вы можете создать свой собственный deserialiser. Вам понадобится внешний класс контейнера, который может использоваться для хранения других подклассов. – MadProgrammer
@MadProgrammer. Пока я пытаюсь это сделать, любой ссылочный пример будет замечательным. –
[Руководство пользователя Gson] (https://sites.google.com/site/gson/gson-user-guide) и, возможно, [Gson Deserialization Cookbook] (http://www.baeldung.com/gson-deserialization-guide) – MadProgrammer