简体   繁体   English

重命名javascript中的JSON键

[英]Rename JSON key in javascript

hello friends i want to rename my JSON key so below i my code 你好朋友,我想重命名我的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)); 

i want to change WatchListItem key with data key but when i run above code JSON key is not replacing any idea how can i solve this? 我想用数据密钥更改WatchListItem密钥,但是当我在上述代码中运行时,JSON密钥并未取代任何想法我该如何解决呢?

obj was undefined . obj undefined Changing obj to obj[0] fixed it. 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)); 

Try this : 尝试这个 :

 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); 

The issue with your code is that your obj is not one object it is an array. 代码的问题在于,您的obj不是一个对象,而是一个数组。 you have to use 你必须使用

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

in the assignement. 在作业中。 Or to do it for all objects 或针对所有对象

use forEach like below 使用如下所示的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));
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM