我正在使用 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/