Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 simple时解析JSON字符串并保留键数据顺序,而无需手动构建HashMap_Java_Json_Json Simple - Fatal编程技术网

Java 在使用JSON simple时解析JSON字符串并保留键数据顺序,而无需手动构建HashMap

Java 在使用JSON simple时解析JSON字符串并保留键数据顺序,而无需手动构建HashMap,java,json,json-simple,Java,Json,Json Simple,我知道这个话题已经被讨论过了,使用LinkedHashMap是一种“黑客”方式来处理这个问题,但是如果我得到数千个JSON字符串作为输入,并最终想要以原始形式输出它们,是否仍然可以在不手动构建LinkedHashMaps的情况下保留顺序 例如,像这样的字符串 {"key":1,"surname":"Reed","given":"Ryan","address":{"state":"CA","postal":"90210"},"gender":"M"} 现在,如果我像这样解析对象: JSONObj

我知道这个话题已经被讨论过了,使用
LinkedHashMap
是一种“黑客”方式来处理这个问题,但是如果我得到数千个JSON字符串作为输入,并最终想要以原始形式输出它们,是否仍然可以在不手动构建
LinkedHashMaps
的情况下保留顺序

例如,像这样的字符串

{"key":1,"surname":"Reed","given":"Ryan","address":{"state":"CA","postal":"90210"},"gender":"M"}
现在,如果我像这样解析对象:

JSONObject jsonObject = (JSONObject) parser.parse(str);
System.out.println(jsonObject);
我的输出将如下所示:

{"surname":"Reed","gender":M,"address":{"postalCode":"90210","state":"CA"},"key":1,"given":"Ryan"}

我是否可以让输出与给定的输入完全匹配?

我认为默认情况下是不可能的

您可以参考此RFC


如果你想破解它,你可以覆盖数据结构并使用保留顺序的数据结构。

在Json属性结构中,顺序并不重要。但如果你心里有特定的顺序,你可以使用Jackson在你的服务器和客户端应用程序中以你想要的方式进行排序

An array is an ordered sequence of zero or more values.