Node.js访问SQLite数据库获取数据时出错 JSON对象无法转换

版本:cocos2d-x 3.10 语言:C++
Node.js版本:6.2.1


在做这个示例的时候,书上Node.js版本还是是0.10.26,而网站上提供的版本已经到6了!当时想到cocos2d-x的版本更新,就感觉有些蛋疼。不过还好,编写代码的过程还算顺利,使用方法跟0版本的一模一样,这样多好,前向兼容。


不过在最后一个例子中还是发生了错误,如果书上的以它的版本是能运行的话,那这个应该算是更新之后js的问题了。


先说明一下情况。


首先使用以下的代码将参数发给服务端:
std::string content = "{\"cdate\":\"2012-1-1\",\"content\":\"haode\"}";
_sioClient->emit("create", content.c_str());


服务端以以下代码获取数据:
socket.on('create', function(data){ //创建的处理
var cdate = data.cdate;
var content = data.content;
/* 跟sqlite3交互略 */
});


获取的数据打印出来是未定义的,所以查看sqlite数据里面插入了数据,但是内容是NULL的。


这边是JSON转化的问题,原本字符串应该是能自动转换成JSON对象,但在这里不知道为什么就失败了。


以下是解决方法:
socket.on('create', function(data){ //创建的处理
var json_data = JSON.parse(data);
var cdate = json_data.cdate;
var content = json_data.content;
/* 跟sqlite3交互略 */
});
使用JSON.parse()显示转换就能获取成功了。


总结:
js中如果不能将字符串隐式转换成JSON对象,就使用JSON.parse()显示转换成JSON对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值