2016-09-23 3 views
0

Я пытаюсь разработать сервер REST с помощью Jackson и JAXB.Jackson JAXB JSON marshalling/unmarshalling

У меня есть следующий класс POJO:

class Location { 
    double[] latLng; 
    String address; 
} 

Для того, чтобы сделать форматы ввода коротким и гибким, я хотел бы вход JSON, чтобы быть одним из следующих форматов:

{ "location": [33,75] } 

{ "location": "complete address" } 

И выход всегда должен быть в формате:

{ 
    "location": { 
     "latitude": 33, 
     "longitude": 74, 
     "address": "complete address" 
    } 
} 

Есть ли способ, которым я могу это достичь?

Спасибо, Асим

ответ

0

Фигурные это, ну, почти. =)

Пусть класс-оболочка для Location является Data:

class Data { 
    Location location = new Location(); 
    public Data() {} 
    public Location getLocation() { return location; } 
    public void setLocation(Location value) { location = value; } 
    public void setLocationGPS(double[] value) { location.latLng = value; } 
    public void setLocationAddress(String value) { location.address = value; } 
} 

С этим определением, любой из следующих входных JSONs будут приняты:

{ "location": { "latLng": [33,74], "address": "complete address" } } 

{ "locationGPS": [33,74] } 

{ "locationAddress": "complete address" } 

=)