Джерси JSON ключ / значение порядка - PullRequest
5 голосов
/ 13 июля 2011

Я создаю Java REST Web App с использованием Джерси для получения данных JSON.

Я столкнулся с проблемой упорядочения пар ключ / значение.Я хочу, чтобы это был следующий порядок: id, name, areaId Но в моем выводе JSON это следующий порядок: areaId, id, name хотя.

Кто-тознаете, как управлять порядком?


Это мой класс объектов комнаты:

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class RoomEntitiy {

private int id;
private String name;
private int areaId;

public RoomEntitiy() {}

public RoomEntitiy(int id, String name, int areaId) {
    this.id = id;
    this.name = name;
    this.areaId = areaId;
}
@XmlAttribute
public final int getId() {
    return id;
}

public final void setId(int id) {
    this.id = id;
}

public final String getName() {
    return name;
}

public final void setName(String name) {
    this.name = name;
}


public final int getArea() {
    return areaId;
}

public final void setArea(int areaId) {
    this.areaId = areaId;
}

}

Это мой вывод JSON:

{
"rooms": [
    {
        "areaId": 2,
        "id": 1,
        "name": "room 831"
    },
    {
        "areaId": 1,
        "id": 2,
        "name": "room 683"
    },
    {
        "areaId": 1,
        "id": 3,
        "name": "Raum 485"
    },
    {
        "areaId": 5,
        "id": 4,
        "name": "room 600"
    },
    {
        "areaId": 2,
        "id": 5,
        "name": "room 283"
    },
    {
        "areaId": 4,
        "id": 6,
        "name": "room 696"
    }
  ]
}

ОБНОВЛЕНИЕ Хорошо, я решил это.Спасибо за ваши ответы.

Я только что добавил следующий код ниже @ XmlRootElement

@XmlType(propOrder = {
    "id",
    "name",
    "areaId"
})

Ответы [ 2 ]

5 голосов
/ 13 июля 2011

Кажется, что порядок элементов в алфавитном порядке. (Да, я Шерлок Холмс ..).В большинстве случаев нет необходимости заказывать отдельные атрибуты.Но я полагаю, что однажды я выполнил некоторые настройки, и вы можете использовать следующую аннотацию для управления сериализацией.

@XmlRootElement
@XmlType(propOrder={"id", "areaId", "name"})

Если это не сработает, вы можете использовать другой механизм сериализации, такой как Джексон или Гсон.

4 голосов
/ 13 июля 2011

JSON-объекты явно неупорядочены .

Объект - это неупорядоченная коллекция из нуля или более пар имя / значение

Если вы хотите упорядочить, используйте массив (но в этом случае все, что вы используете дляДля обработки данных нужно просто запросить ключи в нужном порядке вместо зацикливания).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...