首页 > 解决方案 > 从 JS 对象创建有序 JSON 字符串

问题描述

var data = {};
$('.table-row').each(function(i, el) {
   var key = $(el).find('.key').val();
   var value = $(el).find('.value').val();
   data[key] = value ;
}
var json = JSON.stringify(data);
// output unordered JSON string, since associative object does not preserve order
console.info(json);

如何创建有序的 JSON 字符串,其中键按插入顺序排序?

例如,当table-row包含以下顺序的元素时 -a, x, c我需要接收这样的 JSON 字符串{a: 1, x:2, c: 'value001'}

标签: javascript

解决方案


如果 table-row 是一个对象,则不能保证 table-row 中的元素顺序。 JavaScript 是否保证对象属性顺序?

您最好从数组或MAP开始来存储有序的键,这将更容易转换为相同顺序的 JSON 字符串。


推荐阅读