我有以下JSON:
[
{ 'Album': 'Dearest', 'Artist': 'Theresa Fu', 'Year': '2009'},
{ 'Album': 'To be Free', 'Artist': 'Arashi', 'Year': '2010'}
]
目标是通过JavaScript对客户端中的attribte / value对进行一些简单的重新排序(不排序)。例如:
[
{ 'Album': 'Dearest', 'Year': '2009', 'Artist': 'Theresa Fu'},
{ 'Album': 'To be Free', 'Year': '2010' 'Artist': 'Arashi'}
]
这种工作有简单的方法吗?或者,我是否需要使用JavaScript字符串函数单独拆分它,然后再将它拼接在一起(如果是这样,任何示例都会受到赞赏)。仅供参考,在任何给定时间我只会使用5个属性和10-15行数据,因此转换量很小。
编辑:我为什么这样做?我想使用以下JQuery Table插件:
http://www.jqueryrain.com/?_Cl2jbzM
从我收集的内容,列在网格中显示的顺序必须与JSON中的属性/值对的顺序相匹配(我会尝试并确保)...我需要使用不同的订单,而不是有效载荷中存储的订单。
编辑#2 ......我错了。插件也不依赖于订单。在我发布之前没有遵循尝试的基本规则...而是假设。对不起大家。
答案 0 :(得分:2)
"编辑:我为什么要这样做?我想使用以下JQuery Table插件:
http://www.jqueryrain.com/?_Cl2jbzM
根据我收集的内容,列在网格中显示的顺序必须与JSON中的属性/值对的顺序匹配"
我从未使用过该插件,但从其示例中,列的顺序由您提供的对象数组定义。
columns: [
{ name: 'Album', display: 'Album', type: 'text', ctrlAttr: { maxlength: 100 }, ctrlCss: { width: '160px'} },
{ name: 'Artist', display: 'Artist', type: 'text', ctrlAttr: { maxlength: 100 }, ctrlCss: { width: '100px'} },
{ name: 'Year', display: 'Year', type: 'text', ctrlAttr: { maxlength: 4 }, ctrlCss: { width: '40px'} },
{ name: 'Origin', display: 'Origin', type: 'select', ctrlOptions: { 0: '{Choose}', 1: 'Hong Kong', 2: 'Taiwan', 3: 'Japan', 4: 'Korea', 5: 'US', 6: 'Others'} },
{ name: 'Poster', display: 'With Poster?', type: 'checkbox' },
{ name: 'Price', display: 'Price', type: 'text', ctrlAttr: { maxlength: 10 }, ctrlCss: { width: '50px', 'text-align': 'right' }, value: 0 },
{ name: 'RecordId', type: 'hidden', value: 0 }
]
因此,您可以看到columns
属性是定义列的对象数组。
因为它是一个数组,所以它是一个明确定义的顺序。列的属性在每个对象中定义,因此第一列的名称为Albums
,第二列的名称为Artist
,依此类推。