JSON - 重命名和复制密钥 - 是否可能?

时间:2015-10-06 14:27:34

标签: jquery json parsing autocomplete

我试图将csv文件解析为JSON,我已经完成了,并且它正常工作。

我现在需要重命名" product_code'密钥在整个JSON到'值',并且还复制它(重命名第二次迭代'标签')。两者的值保持不变。我无法编辑csv文件,这需要在JavaScript / jQuery中完成。

希望这会更清楚地解释它:

现有:

{
    "brand":"BrandName1",
    "product_code":"001",
    "product_name":"White Picture Frame",
    "product_barcode":"1009842098"
},
{
    "brand":"BrandName2",
    "product_code":"002",
    "product_name":"Yellow Picture Frame",
    "product_barcode":"0982149872"
}

我希望将其更改为:

{
    "brand":"BrandName1",
    "value":"001",
    "label":"001",
    "product_name":"White Picture Frame",
    "product_barcode":"1009842098"
},
{
    "brand":"BrandName2",
    "value":"002",
    "label":"002",
    "product_name":"Yellow Picture Frame",
    "product_barcode":"0982149872"
}

这样可以与jQuery Autocomplete一起使用。

任何帮助非常感谢!对于JSON,我是一个新手。

3 个答案:

答案 0 :(得分:3)

执行此操作的最佳方法是JSON.parse()您的数据,然后遍历其构建的对象中的项目并添加您想要的密钥。类似的东西:

var data = JSON.parse(myJsonString);
for (var i = 0; i < data; i++) {
    data[i].value = data[i].product_code;
    data[i].label = data[i].product_code;
    data[i].product_code = undefined;
}

编辑:您可以使用product_code将其完全删除,而不是将undefined更改为delete data[i].product_code;。有关详细信息,请参阅此处:https://stackoverflow.com/a/3455416/5169684

答案 1 :(得分:1)

应该是:

UICollectionViewDelegate

至于您要删除的现有属性。使用new.value = existing.product_code; new.label = existing.product_code;

delete

答案 2 :(得分:0)

我最终使用了以下代码,这很好用 - 感谢我把它放在正确的轨道上......

var i;

for(i = 0; i < productList.length; i++){
    productList[i].value = productList[i]['product_code'];
    productList[i].label = productList[i]['product_code'];
    delete productList[i].product_code;
}