请问NodeJS怎么存一个JSON对象到MySQL 5.7数据库里?
发布于 8 年前 作者 hz0324 8300 次预览 最后一次回复是 8 年前 来自 问答
我们有如下的数据类型要保存: { name:"小王" updateTime:123123132 //注意,这里是数字 }
在MySQL 5.7之前,都是先用JSON.stringfy转成字符串,然后以varchar的形式保存,然后取出时,再用JSON.parse的方法把字符串转成json对象。可以经过这么一次操作,拿到的数据就会变成下面的样子: { name:"小王" updateTime:“123123132” //注意,这里变成了字符串 }
也就是说,数字格式的value就也变成了string。这对我们的开发影响很大。我们希望存的JSON在取出时,数字还是数字,不要变成String。 刚刚看到说5.7已经支持JSON格式了,但是我们自己开了一个5.7试了好多次,都没能正确保存进去。 请问,该怎么做啊?
5 回复
换pgsql,使用jsonb字段类型,一了百了。 细节是魔鬼,mysql真用起来无数的坑 。mysql所谓的“支持”和真正能用、敢用、好用是两码事。除非你有能力修改源码。
我试了一下,数据并没有变成字符串,依然是number类型
首先呢,JSON.stringfy并不会转化你的类型。
第二,mysql存储不关乎语言,构造sql语句而已。。。先用数据库工具试试吧
我试了下,使用
JSON类型不会转成字符串的。先建表
插入数据
查询数据,检查类型
结果:
完整代码
官方文档有这样一句话:
JSON类型也是以字符串的形式写入的,会检验字符串是否符合json格式。借楼问,那么
JSON类型和varchar类型的区别就是多了个校验么?我们公司的项目目前都是用varchar来存json对象的。求大佬们指教。