SmartlifeStyle 发表于 2015-8-23 20:28:55

求教一个C语言数组的的问题

在串口接收中设置了一个json_pack的缓冲区,收到的字符长度每次不一样,比如
第一次收到:{"light_ctr":1,"pwm_ctr":1}
第二次收到:{"pwm_ctr":1}
我每次都是一次行处理一个完整的json_pack数组,结果第二次缓冲区内容其实是:{"pwm_ctr":1:1,"pwm_ctr":1}
这样就解析不出来内容了,想问一下有没有比较好的解决方法,避免上面第二次之后的问题。
PS:每次收到的数据长度可以知道的,我准备用 malloc每次按长度分配空间。

落叶随风 发表于 2015-8-23 22:03:59

每次收到字符串后,把后面的一个字节置为'\0'

lcw_swust 发表于 2015-8-23 22:05:24

假如长度为11,那就在收完后加一句json_pack=0

a_y_ang 发表于 2015-8-24 07:58:17

在接收数据的时候计数,==长度 ; ++1;这样能统计数据组的总数

Firman 发表于 2015-8-24 08:07:51

每组命令有没有引导码,比如"做为引导码,{"pwm_ctr":1:1,"pwm_ctr":1}就可以解析出两组命令来.

eye 发表于 2015-8-24 08:53:48

json解析一个完整的对象,就是一对花括号开始到结束。

SmartlifeStyle 发表于 2015-8-26 19:28:55

落叶随风 发表于 2015-8-23 22:03
每次收到字符串后,把后面的一个字节置为'\0'

嗯,对的,解决了
页: [1]
查看完整版本: 求教一个C语言数组的的问题