我正在编写一段代码,它将读取CSV格式的数据并将其转换为JSON格式,而不会破坏顺序。但是,当您键入jsonArray(jsonObjekt)时,顺序发生了变化。我应该怎么做才能保持顺序?
dldeef671#
我正在编写一段代码,它将读取CSV格式的数据,并将其转换为JSON格式,而不会破坏顺序。好吧,这并不难,给出一个工作的CSV阅读器。你没有提供任何代码,但你没有给我任何特别的理由认为你会做错。甚至没有.当你输入jsonArray(jsonObjekt)时,顺序会改变。JavaScript对象中条目的顺序是未指定的,并且它们在这样的对象的JSON序列化中表达的顺序并不重要。您可以生成JSON,其中键以您选择的顺序出现,但这不需要将JSON读入内部对象表示的软件以任何特定顺序或甚至以一致的顺序来替换结果对象的键。如果键的顺序对你来说很重要,那么JSON对象是错误的数据结构,或者至少不是一个足够的数据结构。在JSON中,保持顺序的聚合数据结构是数组,所以这就是你应该寻找的地方。例如,你可以使用一个单条目对象数组,或者你可以通过一个单独的键数组来表达键的顺序,这样如果你想通过索引查找一个值,你就可以从数组中得到相应的键(按指数),或者,直接Map到CSV的一个数据结构是一个可选的键数组加上一个单独的数组,每个CSV记录一个元素,元素是记录的数据值的数组。
1条答案
按热度按时间dldeef671#
我正在编写一段代码,它将读取CSV格式的数据,并将其转换为JSON格式,而不会破坏顺序。
好吧,这并不难,给出一个工作的CSV阅读器。你没有提供任何代码,但你没有给我任何特别的理由认为你会做错。甚至没有.
当你输入jsonArray(jsonObjekt)时,顺序会改变。
JavaScript对象中条目的顺序是未指定的,并且它们在这样的对象的JSON序列化中表达的顺序并不重要。您可以生成JSON,其中键以您选择的顺序出现,但这不需要将JSON读入内部对象表示的软件以任何特定顺序或甚至以一致的顺序来替换结果对象的键。
如果键的顺序对你来说很重要,那么JSON对象是错误的数据结构,或者至少不是一个足够的数据结构。在JSON中,保持顺序的聚合数据结构是数组,所以这就是你应该寻找的地方。
例如,你可以使用一个单条目对象数组,或者你可以通过一个单独的键数组来表达键的顺序,这样如果你想通过索引查找一个值,你就可以从数组中得到相应的键(按指数),或者,直接Map到CSV的一个数据结构是一个可选的键数组加上一个单独的数组,每个CSV记录一个元素,元素是记录的数据值的数组。