【问题标题】:Rename JSON key in javascript在 javascript 中重命名 JSON 键
【发布时间】:2018-06-05 11:45:07
【问题描述】:

你好朋友,我想重命名我的 JSON 密钥,所以下面是我的代码

 var json = '[{"Status":"Success","Data":[{"UserID":null,"UserName":null,"EmailID":null,"EmailIDExists":false,"Active":null,"Country":null,"WishListID":"31","WishListName":"General","WishListItems":[{"WishListItemID":"3","ItemCode":"4414082000005","ItemName":"Notebook 4414-082","Image":"http://aljeel.gct.om/ProductsImages/4414082000005_MT1.jpg","ItemPrice":0.500,"CreatedDate":"25/05/2018"}]},{"UserID":null,"UserName":null,"EmailID":null,"EmailIDExists":false,"Active":null,"Country":null,"WishListID":"24","WishListName":"Default","WishListItems":[]}],"Message":null}]';

var obj = JSON.parse(json)[0].Data;
obj.data = obj.WishListItems;
delete obj.WishListItems;

json = JSON.stringify([obj]);
console.log("FINAL JSON " + (json));

我想用 data 键更改 WatchListItem 键,但是当我在上面运行代码时 JSON 键并没有取代任何想法,我该如何解决这个问题?

【问题讨论】:

  • 数据键也是一个数组,所以你可能需要改为var obj = JSON.parse(json)[0].Data[0];
  • 这能回答你的问题吗? How to rename JSON key

标签: javascript json react-native


【解决方案1】:

试试这个:

var json = '[{"Status":"Success","Data":[{"UserID":null,"UserName":null,"EmailID":null,"EmailIDExists":false,"Active":null,"Country":null,"WishListID":"31","WishListName":"General","WishListItems":[{"WishListItemID":"3","ItemCode":"4414082000005","ItemName":"Notebook 4414-082","Image":"http://aljeel.gct.om/ProductsImages/4414082000005_MT1.jpg","ItemPrice":0.500,"CreatedDate":"25/05/2018"}]},{"UserID":null,"UserName":null,"EmailID":null,"EmailIDExists":false,"Active":null,"Country":null,"WishListID":"24","WishListName":"Default","WishListItems":[]}],"Message":null}]';

var obj = JSON.parse(json)[0].Data;

console.log("Before replace", obj);

var res = obj.map(item => {
  item.data = item.WishListItems;
  delete item.WishListItems;
  return item;
});

console.log("After replace", res);

【讨论】:

    【解决方案2】:

    objundefined。将 obj 更改为 obj[0] 修复了它。

    var json = '[{"Status":"Success","Data":[{"UserID":null,"UserName":null,"EmailID":null,"EmailIDExists":false,"Active":null,"Country":null,"WishListID":"31","WishListName":"General","WishListItems":[{"WishListItemID":"3","ItemCode":"4414082000005","ItemName":"Notebook 4414-082","Image":"http://aljeel.gct.om/ProductsImages/4414082000005_MT1.jpg","ItemPrice":0.500,"CreatedDate":"25/05/2018"}]},{"UserID":null,"UserName":null,"EmailID":null,"EmailIDExists":false,"Active":null,"Country":null,"WishListID":"24","WishListName":"Default","WishListItems":[]}],"Message":null}]';
    
    var obj = JSON.parse(json)[0].Data[0];
    
    obj.data = obj.WishListItems;
    delete obj.WishListItems;
    
    json = JSON.stringify([obj]);
    console.log("FINAL JSON " + (json));

    【讨论】:

    • 在 WishListitem 数据中删除您的代码,它不会用数据键替换 WishListItems
    • @HarshalKalavadiya 首先他创建了一个名为“data”的新节点,他在其中从“WishListItems”节点分配值,然后删除第二个节点,因此您将拥有一个名为 data 的键'WishListItems' 内容。你试过了吗?
    • 你的问题很不清楚。我不知道你要归档什么。
    • @Red 我的问题很明确,我想用数据键重命名 WishListItems 键,我已经在我的问题中突出显示了这些键
    • Babis.amas:我尝试了上面的代码,但它在 WishListItems 数组数据中被删除了我只想用数据键重命名 WishListItems
    【解决方案3】:

    您的代码的问题是您的 obj 不是一个对象,它是一个数组。你必须使用

    var obj = JSON.parse(json)[0].Data[0]; 
    

    在作业中。 或者对所有对象

    进行

    如下所示使用 forEach

        var json = '[{"Status":"Success","Data":[{"UserID":null,"UserName":null,"EmailID":null,"EmailIDExists":false,"Active":null,"Country":null,"WishListID":"31","WishListName":"General","WishListItems":[{"WishListItemID":"3","ItemCode":"4414082000005","ItemName":"Notebook 4414-082","Image":"http://aljeel.gct.om/ProductsImages/4414082000005_MT1.jpg","ItemPrice":0.500,"CreatedDate":"25/05/2018"}]},{"UserID":null,"UserName":null,"EmailID":null,"EmailIDExists":false,"Active":null,"Country":null,"WishListID":"24","WishListName":"Default","WishListItems":[]}],"Message":null}]';
    
    JSON.parse(json)[0].Data.forEach(obj=>{
    obj.data = obj.WishListItems;
        delete obj.WishListItems;
     json = JSON.stringify([obj]);
        console.log("FINAL JSON " + (json));
    });
    

    【讨论】:

      猜你喜欢
      • 2011-06-06
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 2021-07-21
      • 2021-12-31
      • 2019-04-25
      相关资源
      最近更新 更多