Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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 JSON顺序\u映射\u条目\u按\u键运行不一致_Java_Json - Fatal编程技术网

Java JSON顺序\u映射\u条目\u按\u键运行不一致

Java JSON顺序\u映射\u条目\u按\u键运行不一致,java,json,Java,Json,我正在尝试按照我在这个问题中读到的内容,按键排序地图条目: [ 但在打印JsonNode对象时,它似乎不起作用 例如,以下代码: ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT); mapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true); HashMap<String,S

我正在尝试按照我在这个问题中读到的内容,按键排序地图条目:

[

但在打印JsonNode对象时,它似乎不起作用

例如,以下代码:

ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);

HashMap<String,String> personHashMap = new HashMap<String,String>();
personHashMap.put("First", "Joe");
personHashMap.put("Last", "Bloe");
personHashMap.put("Age",  "32");
System.out.println("-- Printing personHashMap         gives:\n"+mapper.writeValueAsString(personHashMap));

String personJsonNode =
    "{\"Last\": \"Bloe\", \"First\": \"Joe\", \"Age\": \"32\"}";
JsonNode personJsonObj = mapper.readTree(personJsonNode);
System.out.println("-- Printing personJsonNode     gives:\n"+mapper.writeValueAsString(personJsonObj));
注意person personHashMap是如何按键排序的,而不是personJsonNode对象


我做错了什么?Thx.

这是因为
按键排序映射条目只适用于
映射
,而不适用于
JsonNodes
(这是一个奇怪的设计决策,但是…)。这就是为什么您引用的答案在字符串化之前将
JsonNode
树转换为
对象的原因。您需要在代码中执行相同的操作

-- Printing personHashMap gives:

{
  "Age" : "32",
  "First" : "Joe",
  "Last" : "Bloe"
}
-- Printing personJsonNode gives:

{
  "Last" : "Bloe",
  "First" : "Joe",
  "Age" : "32"
}