如何使用Java更改JSON对象的顺序?

如何使用Java更改JSON对象的顺序?,java,json,Java,Json,我对JSON非常陌生,并尝试使用Java构建一个新的JSON请求文件。以下是我需要实现的目标 { "ID": "9724234234", "Details": [ { "Name": "Donny", "EmpID": "B572345", "country": "India&

我对JSON非常陌生,并尝试使用Java构建一个新的JSON请求文件。以下是我需要实现的目标

{
  "ID": "9724234234",
  "Details": [
    {
      "Name": "Donny",
      "EmpID": "B572345",
      "country": "India",
      }
   ]
}
这是我的Java代码

public static void main(String[] args) {
    JSONObject obb = new JSONObject();
    obb.put("ID", "9724234234");

    JSONArray jsonArray = new JSONArray();
    obb.putAll(obb);
    JSONObject obj = new JSONObject();
    obj.put("Name", "Donny");
    obj.put("EmpID", "B572345");
    obj.put("Country", "India");

    jsonArray.add(obj);

    JSONObject obj1 = new JSONObject();
    obj1.put("Details", jsonArray);

    obb.putAll(obj1);
    System.out.println(obb);
}
我得到的JSON是什么

{
  "Details": [
    {
      "Country": "India",
      "EmpID": "B572345",
      "Name": "Donny"
    }
  ],
  "ID": "9724234234"
}

如您所见,我的ID在JSON中的位置不正确,我希望它出现在JSON的第一部分。我遗漏了什么吗?感谢您的帮助。干杯。

您不能在JSON中指定键的顺序,这并不重要。任何出于某种原因试图依赖密钥顺序的代码都将失败。大多数标准的hashmap/键值对实现都是这样,在某些语言(如Go)中,顺序是故意随机的,以确保没有人试图依赖它。

您不能在JSON中指定键的顺序,这并不重要。任何出于某种原因试图依赖密钥顺序的代码都将失败。大多数标准的hashmap/键值对实现都是这样,在某些语言(如Go)中,排序是故意随机的,以确保没有人试图依赖它。

首先,Json元素的排序几乎不重要,它只能是令人眼花缭乱的,但请尝试一下

public static void main(String[] args) {
JSONObject obb = new JSONObject();


JSONArray jsonArray = new JSONArray();

JSONObject obj = new JSONObject();
obj.put("Name", "Donny");
obj.put("EmpID", "B572345");
obj.put("Country", "India");

jsonArray.add(obj);
obb.put("ID", "9724234234");
obb.putAll(obb);
JSONObject obj1 = new JSONObject();
obj1.put("Details", jsonArray);

obb.putAll(obj1);
System.out.println(obb);

}

首先,Json元素的顺序几乎无关紧要,它只能让人赏心悦目,但也不能超过这一点,不过请尝试一下

public static void main(String[] args) {
JSONObject obb = new JSONObject();


JSONArray jsonArray = new JSONArray();

JSONObject obj = new JSONObject();
obj.put("Name", "Donny");
obj.put("EmpID", "B572345");
obj.put("Country", "India");

jsonArray.add(obj);
obb.put("ID", "9724234234");
obb.putAll(obb);
JSONObject obj1 = new JSONObject();
obj1.put("Details", jsonArray);

obb.putAll(obj1);
System.out.println(obb);

}

您不能依赖JSON对象中元素的顺序。 JSON库可以根据需要自由地重新排列元素的顺序。这不是虫子


有关json的更多信息,请参见

您不能依赖json对象中元素的顺序。 JSON库可以根据需要自由地重新排列元素的顺序。这不是虫子


有关json的更多信息,请在类级别使用@JsonPropertyOrder注释,并提供创建json的顺序。只有在使用jackson库进行JSON解析时,这才有助于您

例如


在类级别上使用@JsonPropertyOrder注释,并提供创建JSON的顺序。只有在使用jackson库进行JSON解析时,这才有助于您

例如


JSON对象是名称/值对的无序集合。您可能无法使用JSON库,但如果可以使用linkedhashmap和GSON库,则可能会得到所需的结果。JSON对象是名称/值对的无序集合。您可能无法使用JSON库,但如果可以使用linkedhashmap和GSON库然后您可能会得到所需的结果。将编辑或删除此答案以使此空间更干净,谢谢将编辑或删除此答案以使此空间更干净,谢谢