JSONArray中元素的顺序

我正在使用org.json.simple解析Java中的JSON文件。我有一个看起来像这样的JSONfile:

{
 "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)?

gj856721 回答:JSONArray中元素的顺序

由于JSONArray是“值的有序序列”(可以在docs中看到),因此可以假定数组元素的顺序与从实际JSON文件读取的顺序相同。因此,只要您的JSON文件没有更改,读取数组就不会更改。

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

,

虽然您的答案是正确的(如果命令您指的是错误的文档),因为作者询问了org.json.simple中存在的JSONArray而不是org.json中存在的JSONArray

本文链接:https://www.f2er.com/3160681.html

大家都在问