Преобразование Джерси Массив в Список

1

Я хочу преобразовать массив Json в список объектов. Json Array выглядит примерно так:

{
"servers": [
{
"id": "616fb98f-46ca-475e-917e-2563e5a8cd19",
"links": [
{
   "href": "http://openstack.example.com/v2/openstack/
    servers/616fb98f-46ca-475e-917e-2563e5a8cd19",
   "rel": "self"
},
{
    "href": "http://openstack.example.com/openstack/servers/
    616fb98f-46ca-475e-917e-2563e5a8cd19",
    "rel": "bookmark"
}
        ],
"name": "new-server-test"
}
]
}

Классы, которые я использовал для отображения этого массива Json:

@XmlRootElement
public class GetServersResponse{

    private List<Server> servers;
}

public class Server {

   private String id;
   private List<Link> links;
   private String name;
   //getter and setter methods
}

public class Link {

   private String href;
   private String rel;
   //getter and setter methods
}

Клиент:

public class Openstack
{
    private final  Client c;
    private String output;
    private GetServersResponse clientResponse;
    WebTarget webTarget;
    private String token;

    public Openstack()
    {
        ClientConfig clientConfig = new ClientConfig();
        clientConfig.property(ClientProperties.CONNECT_TIMEOUT, Config.CONNECT_TIMEOUT);
        clientConfig.property(ClientProperties.READ_TIMEOUT, Config.READ_TIMEOUT);
        c = ClientBuilder.newClient(clientConfig);
    }
    public GetServersResponse getServers(String tenant_id)throws IOException
    {
        webTarget = c.target("www.myexample.com");
        clientResponse = webTarget.request()
                                  .header("X-Auth-Token",token)
                                  .accept(MediaType.APPLICATION_JSON_TYPE)
                                  .get(GetServersResponse.class);
        return (clientResponse);
    }

Проблема в том, что Json, возвращенный клиенту, всегда пуст. Кто-нибудь имеет представление о том, где может быть ошибка? Спасибо за вашу помощь!

Теги:
rest
jersey
moxy

1 ответ

1
Лучший ответ

Чтобы правильно использовать функцию moxy, вы ДОЛЖНЫ внедрить метод getter/setter для всех классов Java, которые вы используете для сопоставления json-пакета. В вашем случае вы должны реализовать метод set и get для "серверов списков" и все другое свойство объектов, участвующих в обработке преобразования. Если вы используете Netbeans, вы можете использовать функцию "Инкапсулировать Fileds" из ваших свойств объектов, чтобы создавать очень быстрые методы getter и setter. Наслаждаться (:

  • 1
    Спасибо за вашу помощь! Теперь этот код работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню