嗨,我想将下面的json数据转换成不同的格式,这是对我的json数据的重新排列。我也理解我们通过键访问数据,但是我的要求如下所示,我对此无能为力。在必填数据的下方,您可以看到月份始终排在第一位。
给定数据:-
[ { "Operating Company" : "7", "month" : "March", "Insolvency" : "2", "SPV / Asset Backed" : "4" }, { "Operating Company" : "3", "month" : "July", "Insolvency" : "43", "TBD" : "1" }, { "Operating Company" : "6", "month" : "August", "SPV / Asset Backed" : "27" }, { "Operating Company" : "54", "month" : "September", "Insolvency" : "114", "Operational Company" : "1", "SPV / Asset Backed" : "15" } ]
所需数据:-
[ { "month" : "March", "Operating Company" : "7", "Insolvency" : "2", "SPV / Asset Backed" : "4" }, {"month" : "July", "Operating Company" : "3", "Insolvency" : "43", "TBD" : "1" }, { "month" : "August", "Operating Company" : "6", "SPV / Asset Backed" : "27" }, {"month" : "September", "Operating Company" : "54", "Insolvency" : "114", "Operational Company" : "1", "SPV / Asset Backed" : "15" } ]
答案 0 :(得分:0)
JSON规范不能保证JSON处理器如何处理对象中键-值对的顺序:
6个对象
JSON [...]语法没有为名称/值对的排序赋予任何意义。这些都是语义考虑因素,可以由JSON处理器定义,也可以在规范中定义JSON用于数据交换的特定用途。
ECMAScript 2015规范不保证对象中键的顺序:
9.1普通对象的内部方法和内部插槽 9.1.11 [[枚举]]()
[...]未指定枚举属性的机制和顺序[...]
因此,您可以更改JSON对象中键/值对的顺序,但是如果您将JSON.parse()
更改为JavaScript对象,则不再保证该顺序。
但是,如果在JavaScript中解析时需要保持JSON对象的键值对的顺序,则需要编写自己的将JSON对象解析为JavaScript Map的解析。 Map
保证键的顺序。
由于您在评论中提到D3.js需要此功能,因此我很确定您的实际问题是其他问题。随时为您的D3.js问题打开另一个问题。