狐友们的朋友们都知道,猫猫最近在做硬件网关的开发,这几天在做下发消息的操作,发现怎么也调不通。
不得已拿起NODEJS自己做个了摸拟客户端。
工作倒挺好,没有任何问题,于是拿起硬件网关生成的JSON,后面终于被我看出端伲来了,原来是生成的小数有问题
我定义iot10086服务的返回字段是int32 ,但这个cjson生成的偏偏有小数点,怎么都去不掉。
按文档说明,试着用 cjson.stffmt("%.0f") cjson.stffmt("%.f") 都不能去掉小数点。
拿起vscode 手撸一下,完全可以去掉小数点啊。
于是联系了硬件厂家,厂家说是cjson的问题,我说这JSON行为和LUA语言的行为不一致啊。后面跟我说CJSON有升级,明天上班后更新看看。
我于是自己去找了一个LUA的JSON库,自己修改了一下,放到运行网关测试,完美,代码写得也很爽,可以直接table to json
完美解决。
小数点的问题,解决之后,又发现收不到数据了,只报超时错误,于是又托着脑袋发了一下呆,刚开始以为是括号的问题。
后面后面,才发现是onejson 不支持中文,一个大坑货。
这坑一环扣一环,终算让猫猫趟过来了。