将嵌套的 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的主要内容,如果未能解决你的问题,请参考以下文章

创建一个导致嵌套 JSON 数组对象的 MySQL 过程

如何使用 Python 将嵌套字典/json 插入 MySQL 表

如何使用 mysql 本机 json 函数生成嵌套的 json 对象?

使用 Python 从 MySQL 中的 JSON 对象插入多行

如何将数据从多个输入字段转换为单个 JSON 对象以进一步将其插入单个 mysql 字段

MySQL 5.7+,嵌套路径中的 JSON_SET 值