找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 969|回复: 5
收起左侧

单片机+ESP8266接收天气字符串的处理问题

[复制链接]
ID:398219 发表于 2022-10-1 09:42 | 显示全部楼层 |阅读模式
新手自学单片机不懂就问:)。51单片机+8266接收心知天气回传的天气数据如下。{"results":[{"location":{"id":"WM0B0X54DZW9","name":"Chongqing","country":"CN","path":"Chongqing,Chongqing,China","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"Sunny","code":"0","temperature":"25"},"last_update":"2022-10-01T08:50:12+08:00"}]}
我想要提取“code”后面的数字“0”和"temperature"后面的温度数据,求方法。谢谢各位大神指导。

回复

使用道具 举报

ID:771630 发表于 2022-10-1 10:02 | 显示全部楼层
strstr匹配字符串,然后再加上字符串偏移的Head指针,再strchr双引号查找结束地方得Tail,把Tail指向的位置置0,再atoi(Head)
回复

使用道具 举报

ID:398219 发表于 2022-10-1 20:11 | 显示全部楼层
XLinliY.Zhang 发表于 2022-10-1 10:02
strstr匹配字符串,然后再加上字符串偏移的Head指针,再strchr双引号查找结束地方得Tail,把Tail指向的位置 ...

大哥,能否程序上指导一下怎么操作啊
回复

使用道具 举报

ID:277550 发表于 2022-10-1 23:07 | 显示全部楼层
参考这个     隔壁坛

"C语言解析JSON(HeWearher)测试(nxjson)"
回复

使用道具 举报

ID:151348 发表于 2022-10-2 09:19 | 显示全部楼层
假设esp8266返回的字符串为objstr
a=strstr(objstr,”code”);//找出”code”所在的位置,位置为a
strcpy(newstr,objstr+a+7,1)//a+7是code后数字“0”所在的位置,这一句就是把0拷贝到字符串newstr里

另外有用 memcpy()来复制的,网上搜一下
回复

使用道具 举报

ID:310441 发表于 2022-10-11 07:04 来自手机 | 显示全部楼层
寻找字符串中的特定码这是通信中的基本功,建议自己还是要实践和思考下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表