java - 使用 json-simple 时解析 JSON 字符串并保留键数据顺序,无需手动构造 HashMap

标签 java json json-simple

我知道这个主题已经被讨论过,并且使用 LinkedHashMap 是一种“hacky”方式来操纵这个问题,但是如果我有数千个 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"}

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

最佳答案

在 Json 属性结构中,顺序并不重要。但如果您心中有特定的顺序,您可以使用 Jackson 以您想要的方式对它们进行排序,无论是在服务器还是客户端应用程序中。

https://www.baeldung.com/jackson

http://www.davismol.net/2016/10/24/jackson-json-using-jsonpropertyorder-annotation-to-define-properties-serialization-order/

关于java - 使用 json-simple 时解析 JSON 字符串并保留键数据顺序,无需手动构造 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51907201/

相关文章:

ios - 在iOS中解析Json而没有常见的 key

java - 使用 JSON-simple 将条目附加到 JSON 数组中

java - 使用 JAVA 从 JSON 文件(嵌套对象数组)打印特定值

java - 不将自定义java对象保存在android studio的firebase中

java - 如何让Android返回一个内部类对象给flutter

java - 如何找到对象分配的总内存

java - Json解析——JAVA中JSONArray到JSONObject

java - 当 XSD 元素没有定义类型(类型 ur-type)但 SOAP 响应中返回子类型时,Axis2 会失败?

java - Spring Rest 操作将响应转换为类

javascript - Jquery Datatable 将一个表中的一行添加到另一个表中