我们正在构建一个iPhone聊天应用程序.
从浏览器向iPhone发送JSON聊天消息时:
{"content":"Hi"}
iPhone收到:
{"content":{"0":72,"1":105,"length":2}}
但是,我们打算让它收到同样的确切消息.
要重现此问题,请先安装node.js和redis.然后:
获取代码:
git clone git://github.com/acani/acani.git cd acani git submodule update --init
在默认端口上启动Redis.
来自http://github.com/acani/acani-node:
node acani-node-server.js # run node.js chat server # open index.html in a Google Chrome or Firefox and follow instructions.
打开位于http://github.com/acani/acani-chat/tree/master/Lovers2/的 Lovers.xcodeproj ,并将LoversAppDelegate.m更改为最初加载ChatViewController而不是HomeViewController.
homeViewController = [[HomeViewController alloc] init]; # comment out this line # change the next line to: navigationController = [[UINavigationController alloc] initWithRootViewController:[[ChatViewController alloc] init]]; # Then, build & run.
ma11hew28.. 6
我们想通了.根本不是iPhone或Objective-C.转换错误发生在node.js服务器上.我们忘了在JSON对象的字符串值周围加上引号,因此JSON.stringify()
JavaScript函数正在转换字符串,如上所示...除了我们做的事情:{"content":Hi}
.当我们将其更改为:时{"content":"Hi"}
,它运行正常.Duhh ...
我们想通了.根本不是iPhone或Objective-C.转换错误发生在node.js服务器上.我们忘了在JSON对象的字符串值周围加上引号,因此JSON.stringify()
JavaScript函数正在转换字符串,如上所示...除了我们做的事情:{"content":Hi}
.当我们将其更改为:时{"content":"Hi"}
,它运行正常.Duhh ...