gpt4 book ai didi

javascript - 使用 NodeJS 更新 JSON 对象中的值

转载 作者:太空宇宙 更新时间:2023-11-04 03:04:17 25 4
gpt4 key购买 nike

我有一个 JSON 对象,正在提交给 AWS Lambda NodeJS 函数。这个 JSON 对象在将其插入 MySQL 数据库之前需要转义的字段之一中有一个撇号。

该对象需要保持完整,因为它作为 JSON 对象存储在数据库中。我研究过字符串替换函数,但这些函数不起作用,因为它本身就是一个 JSON 对象。

我确信这里有一个简单的答案,我只是对 NodeJS 很陌生,在搜索了几个小时后还没有找到方法。提前致谢!

我需要更新的字段是下面的2.1:

BAD JSON 对象示例:

{
"field1": "ABCD1234DEFG4567",
"field2": "FBI",
"fieldgroup": {
"1.1": "ABCD",
"1.2": 20170721,
"1.3": "ABCD",
"2.1": "L'astName, FirstName M"
}
}

FINAL JSON 对象示例:

{
"field1": "ABCD1234DEFG4567",
"field2": "FBI",
"fieldgroup": {
"1.1": "ABCD",
"1.2": 20170721,
"1.3": "ABCD",
"2.1": "L''astName, FirstName M"
}
}

最佳答案

const o = {
"field1": "ABCD1234DEFG4567",
"field2": "FBI",
"fieldgroup": {
"1.1": "ABCD",
"1.2": 20170721,
"1.3": "ABCD",
"2.1": "L'astName, FirstName M"
}
};

const preparedObject = prepare(o);
console.log(JSON.stringify(preparedObject, null, 4));

function prepare(o) {
const replacedStrings = Object.keys(o)
.filter(key => typeof o[key] === "string")
.reduce((accu, key) => ({ ...accu, [key]: o[key].replace("'", "''") }), {});
const preparedChildren = Object.keys(o)
.filter(key => typeof o[key] === "object")
.reduce((accu, key) => ({ ...accu, [key]: prepare(o[key]) }), {});
return { ...o, ...replacedStrings, ...preparedChildren };
}

关于javascript - 使用 NodeJS 更新 JSON 对象中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45245626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com