将嵌套的 JSON 对象插入 MySQL
Posted
技术标签:
【中文标题】将嵌套的 JSON 对象插入 MySQL【英文标题】:Inserting a nested JSON Object into MySQL 【发布时间】:2018-06-19 09:43:25 【问题描述】:我有一个 JSON 在运行 Console.log(myjsonobject)
时在 Node.js 中输出这样的结果:
"results":
[
"id": 'xxxxxx',
"size": 'xxxxx',
"data":
[
"date": 'xxxxx',
"age": 'xxxx',
"grade": 'xxxxxx'
,
"date": 'xxxxx',
"age": 'xxxx',
"grade": 'xxxxxx'
.... // many more data again
]
]
"total": 'xxxxxxx',
"group": 'xxxxxxx'
我是 Node.js 的新手,正在努力在 mysql 数据库中插入 myjsonobject
。
【问题讨论】:
您将创建 2 或 3 个相互关联的表,然后相应地插入数据。您的问题太宽泛,无法在这里回答 【参考方案1】:是的,您可以在 mysql 中插入嵌套对象。请按以下步骤操作:
1) 您必须创建一个包含 JSON 列的表,MySQL JSON Docs
CREATE TABLE myjson (jdoc JSON);
2) 连接mysql,我用的是mysql驱动,安装一下:
npm install mysql
3) 更正您的代码: 例如,在第 3 行,对象数组必须使用 [ ] 而不是 []。
3) 正确地将数据插入到您的数据库中:
var mysql = require('mysql');
var con = mysql.createConnection(
host: "localhost",
user: "youruser",
password: "yourpassword",
database: "yourdb"
);
//Your JSON nested object;
var my_json_nested_object =
"results":
[ // <--
"id": "xxxxxx",
"size": "xxxxx",
"data":
[
"date": "xxxxx",
"age": "xxxx",
"grade": "xxxxxx"
,
"date": "xxxxx",
"age": "xxxx",
"grade": "xxxxxx"
]
], // <-- use
"total": "xxxxxxx",
"group": "xxxxxxx"
;
//The JSON.stringify() method converts a javascript value to a JSON string
var sql = "INSERT INTO myjson VALUES ('" +
JSON.stringify(my_json_nested_object) + "');";
con.query(sql, function (err, results,fields)
if (err)
throw err;
console.log(results); //or console.log(JSON.stringify(results));
con.end();
);
【讨论】:
以上是关于将嵌套的 JSON 对象插入 MySQL的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 将嵌套字典/json 插入 MySQL 表
如何使用 mysql 本机 json 函数生成嵌套的 json 对象?
使用 Python 从 MySQL 中的 JSON 对象插入多行