如何替换部分json字符串

我只想删除下面 Json 字符串中以 C_ 开头的字符“C”键。这里是我拥有的 javscript 对象


var jsonData=

{

key1:val1,

key2:val2,

C_100:1,

C_101:2,

C_102:3,

}

我期待输出类似于


var jsonData=

{

key1:val1,

key2:val2,

100:1,

101:2,

102:3,

}

json 字符串是动态的,我可以有很多键值对。我想从所有以“C_”开头的键中删除“C_”。请告诉我如何从对象中删除 C_。


我尝试使用json.stringify和替换进行转换,但它不起作用。


var jstring = JSON.stringify(jsonData);

 var y = jstring.replace("\"C_\":", "\"\":");

我得到的是


"{"key1":"val1","key2":"val2","C_100":"1","C_101":"2","C_102":"3"}"

期望输出为


"{"key1":"val1","key2":"val2","100":"1","101":"2","102":"3"}".


大话西游666
浏览 204回答 3
3回答

冉冉说

让我们假设你有var jsonData={key1:'val1',key2:'val2',C_100:1,C_101:2,C_102:3,}然后你需要按如下方式处理Object.entries(jsonData).map(e => [e[0].replace(/^C_/,''), e[1]]).reduce((p,n) => ({ ...p, [n[0]]: n[1] }), {})要得到{100: 1, 101: 2, 102: 3, key1: "val1", key2: "val2"}

HUX布斯

这是一个简单易读的代码来做到这一点:var jsonData={key1:"val1",key2:"val2",C_100:1,C_101:2,C_102:3,}var modifiedData = {};for (key of Object.keys(jsonData)) {  var newKey = key.replace("C_", "");  modifiedData[newKey] = jsonData[key];}console.log(modifiedData) // prints var jsonData={key1:"val1",key2:"val2",C_100:1,C_101:2,C_102:3,}var modifiedData = {};for (key of Object.keys(jsonData)) {  var newKey = key.replace("C_", "");  modifiedData[newKey] = jsonData[key];}console.log(modifiedData) // prints { '100': 1, '101': 2, '102': 3, key1: 'val1', key2: 'val2' }

米琪卡哇伊

您可以使用 justJSON.stringify()和JSON.parse()方法来做到这一点:let jsonData =  {  key1: val1,  key2: val2,  C_100: 1,  C_101: 2,  C_102: 3,};let string = JSON.stringify(jsonData);string = string.replace(/C_/g, "");let obj = JSON.parse(string);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript