Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jersey JSON键/值顺序_Java_Json_Jersey - Fatal编程技术网

Java Jersey JSON键/值顺序

Java Jersey JSON键/值顺序,java,json,jersey,Java,Json,Jersey,我正在使用Jersey构建一个JavaRESTWeb应用程序,以获得JSON数据输出 我遇到了键/值对排序的问题。 我希望是这样的顺序:id,name,areaId 但在我的JSON输出中,顺序如下:区域id、id、名称 有人知道如何控制订单吗 这是我的房间对象类: import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement pu

我正在使用Jersey构建一个JavaRESTWeb应用程序,以获得JSON数据输出

我遇到了键/值对排序的问题。 我希望是这样的顺序:id,name,areaId 但在我的JSON输出中,顺序如下:区域id、id、名称

有人知道如何控制订单吗


这是我的房间对象类:

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"
})
JSON对象是

对象是零个或多个名称/值对的无序集合


如果您想要顺序,请使用数组(但在本例中,无论您使用什么方法来处理数据,都应该按照它想要的顺序来请求密钥,而不是循环)。

元素的顺序似乎是按字母顺序排列的。(是的,我是Sherlock Holmes.)。在大多数情况下,不需要对单个属性进行排序。但我相信我曾经做过一些定制,您可以使用以下注释来控制序列化

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

如果这不起作用,那么您可以使用其他序列化机制,如Jackson或Gson。

为什么顺序很重要?JavaScript对象没有固有的顺序。