我有一个JSON,希望将其重新排序为一个新的JSON。
这就是我获取JSON:的方式
function getFormData($form){
var unindexed_array = $form.serializeArray();
var indexed_array = {};
$.map(unindexed_array, function(n, i){
indexed_array[n['name']] = n['value'];
});
return indexed_array;
}
假设结果如下(JSON.stringify(((:
var txt_JSON = {"username":"john","email":"john@doe.com","age":"29","created_date":"2020-10-28"}
我想按惯例重新订购。类似这样的东西:
var arr_order = [3,2,0,1];
根据重新排序规则,JSON应该变成这样:
var txt_JSON = {"created_date":"2020-10-28","age":"29","username":"john","email":"john@doe.com"}
这里的大多数示例都显示了按名称或值排序。非常感谢您的帮助。
您可以使用Object.entries
将对象转换为键值对数组
然后.map
和arr_order
返回对的预期顺序
并使用Object.fromEntries
将配对转换回对象
var txt_JSON = {
username: "john",
email: "john@doe.com",
age: "29",
created_date: "2020-10-28",
}
var arr_order = [3, 2, 0, 1]
var txt_JSON_entries = Object.entries(txt_JSON)
var new_txt_JSON = Object.fromEntries(arr_order.map((i) => txt_JSON_entries[i]))
console.log(new_txt_JSON)