java - JSONArray 中元素的顺序

标签 java json

我正在使用 org.json.simple 在 Java 中解析 JSON 文件。我有一个如下所示的 JSON 文件:

{
 "cells": [
    {
     "key" : "val1"
    },
    {
     "key" : "val2"
    },
    {
     "key" : "val3"
    }
  ]
}

如果它存储在名为 path 的文件中,并且我像这样获取cells:

Reader reader = new FileReader("path");
JSONObject obj = (JSONObject)new JSONParser().parse(reader);
JSONArray cells = (JSONArray) obj.get("cells");

我可以假设 JSONArray cells 中的元素存储顺序与文件中的顺序相同(即 cells 中的第一个元素包含值 val1,第二个元素包含 val2,最后一个元素包含 val3)?

最佳答案

由于 JSONArray 是“值的有序序列”(如 docs 中所示),您可以假设数组元素的顺序与从实际 JSON 文件中读取的顺序相同。所以只要你的JSON文件不改变,读取的数组就不会改变。

但如果可能的话,我建议不要让您的代码依赖于文件定义的排序。我认为这是不好的做法。
如果确实需要定义排序,您可以使用 JSON 文件中使用的键在代码中定义所需的排序。例如,定义一个数组 ['key3', 'key2', 'key1'] 并通过搜索这些键并创建一个新列表来从读取的 JSONArray 中提取值。

关于java - JSONArray 中元素的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58708717/

相关文章:

java - 未找到 JSP、EL 属性

java - Android 应用程序意外停止

json - 从 spark 中保存压缩的 json

java - 将 json 转换为具有混合类型的数组的 java 对象

javascript - 尝试从 URL 解析 JSON 文件

java - 如何向 xml 属性文件添加变量?

java - 增加一次处理的出队消息数量 (ActiveMQ)

java - 如何在 TableView Javafx 中将枚举值加载到组合框

json - 如何使用nodejs请求模块正确发送请求头?

json - REST:使用一个请求更新多个资源 - 它是标准的还是应该避免的?