将嵌套的JSON对象插入MySQL

时间:2018-01-10 09:05:35

标签: mysql json node.js

运行Console.log(myjsonobject)时,我有一个在Node.js中输出的JSON:

{
"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 个答案:

答案 0 :(得分:2)

是的,您可以在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();
});

答案 1 :(得分:-1)

结构数据库中的

Mysql在不同的表之间有关系。与MongoDB不同,没有直接的对象Inseration。

所以如果你想要Mysql,你只需要在表中用外键创建关系,否则改为NoSql数据库。

refer here