如何将JSON解析为MySQL

时间:2019-04-26 09:08:53

标签: mysql node.js json http

我有一个来自http请求的JSON字符串,我需要将其存储在MySql表,列和行中

我需要在Node.js中执行此操作。通过http请求获取JSON字符串不是问题。 http://lonobox.com/api/index.php?id=100004854

问题是将其转换为列和行并将其存储在MySql中。替代postgre

这是我的JSON字符串

[
    {
        "200004854": {
            "temperature": "14.2",
            "humidity":"68"
        }
    },
    {
        "200005584": {
            "temperature": "20",
            "humidity":"51"
        }
    },
    {
        "100004854": {
            "barometer":"1002"
        }
    }
]

2 个答案:

答案 0 :(得分:0)

您可以尝试使用JSON.parse()解析json数据。 结果将是一个数据数组。 如果您愿意尝试其他数据库,则建议使用mongodb。 这样您就可以直接将数据作为json推送。

答案 1 :(得分:0)

您可以尝试使用expressregular expression npm模块

在使用express和my-sql连接定义“ app”之后,您可以使用类似于以下示例的代码:

app.use(bodyParser.json())

app.get('/', function(req, res) {                        //handles request when URL is accessed
  res.sendFile(path.join(__dirname+ '/myfile.html'));
});

app.post('/', function(req, res) {                       //handles request when data is sent

var jsondata = req.body;
var values = [];

for(var i=0; i< jsondata.length; i++)
  values.push([jsondata[i].name,jsondata[i].age]);

connection.query('INSERT INTO members (name, age) VALUES ?', [values], function(err,result) {
  if(err) {
     res.send('Error encountered');
  }
 else {
     res.send('Data sent successfully');
  }
 });
});

当我不得不做类似的事情时,我能够找到的这种方法,这可能是也可能不是最好的方法