首页 > 解决方案 > JS解析到MySQL时引用冲突

问题描述

所以我有这个 JSON 对象,我需要解析成一个字符串并使用 JavaScript 发送到我的 SQL 数据库。节点包是“mysql”。JSON 对象是具有可变键数量的对象数组,如下所示:

{
    array:
        [
            {"title": "Lorem ipsum dolor sit amet",
            "body": "Lorem ipsum dolor sit amet: <a href=\ "https:\/\/www.google.com\/">'Lorem ipsum dolor sit amet, consectetur adipiscing elit'<\/a>
                    The future of aviation doesn't necessarily involve existing aircraft..."
            }
        ],
        [...],
        [...]
}

我使用以下方法解析它:

let values = [];
let elements = [];
for (let i = 0; i < array.length; i++) {
    values = [];
    for (let key in array[i]) {
        values.push(`"${array[i][key]}"`)
    }
    elements.push(`(${values.join(', ')})`)
}
// pushing elements and columns into an sql query 
let sql = `INSERT INTO table (columns) VALUES ${elements.join(', ')}`

当我尝试查询字符串时,它返回以下错误:

code: 'ER_PARSE_ERROR',
errno: 1064,
sqlMessage: "You have an error in your SQL syntax; check the manual ...",
sqlState: '42000',

我责怪引号和撇号,因为这种解析方法与我拥有的另一个 JSON 对象一起使用。我该如何解决这个问题?

标签: javascriptmysqlsqljsonparsing

解决方案


您应该使用JSON.stringify()方法处理 json 对象的序列化。您无需为此编写自己的函数

同样对于反序列化使用JSON.parse()将您的字符串转换回 JSON 对象


推荐阅读