は、私は、MySQL JSON列にJSONオブジェクトを挿入しようとしていると私は取得しています:MYSQL:無効なJSONテキスト: "無効なエスケープ文字(文字列内)"
"summary":"Summary of Qualifications:\nAccomplished and results-driven General Business Director with a consistent track record."
I:Invalid JSON text: "Invalid escape character in string."
は
問題の文字は、オブジェクトのこの部分で\n
ですJSON_OBJECT、JSON_QUOTEを試してみましたが、私の最近の試行には、
summary.replace("\n", "\\n")
が含まれています。既存のエスケープ文字を適切なものに置き換える方法はありますか?エスケープ文字。
Node、Express、JawsDBを使用しています。
編集:ここでは、実際の挿入コードがあります:
const fields = '(myField)';
const values = `('${JSON.stringify(field.contents || {})}')`;
db.query('INSERT INTO mydb ' + fields + ' VALUES ' + values,
err => {
if (err) {
console.log(values);
throw(err) ;
}
}
);
代わりに、私はstringfyをjsonと言い、mysqlのvarcharカラムに入れて、再検索時にjson.parseを使って文字列を解析します。 –
'\ n'が問題になるとは何でしょうか?どのようにインサートを実際にやっていますか?プレースホルダ? (例えば、 'VALUES(?)')? –
@ Michael-sqlbotが実際のコードを追加しました。ここにプレースホルダを使用しています。また、それはオブジェクトの違反行#を教えてくれます。代わりに\ nの前にコロンを置くことができます。 –