我需要在没有外部库的情况下手动解析来自服务器的 C 语言
JSON
消息。
来自服务器的消息如下:
{[CR+LF]
"Tmg": "R",[CR+LF]
"STP": 72[CR+LF]
}[CR+LF]
或
{[CR+LF]
"Tmg": "R",[CR+LF]
"STP": 150[CR+LF]
}[CR+LF]
我需要STP:
后面的号码。每个消息结构中的数字都不同,因此我需要从 JSON 结构中获取该数字。我无法使用外部库,因为此代码位于嵌入式系统中,并且不允许使用外部代码。
我尝试了以下操作:
int main (){
const char response_message[35] = "{\r\n\"Tmg\":\"R\",\r\n\"STP\":72,\r\n}";
const char needle[8] = "P\":";
char *ret;
ret = strstr(response_message, needle);
printf("The number is: %s\n", ret);
return 0;
}
但显然,我得到了这个结果:
The number is: P":72,
}
所以我只需要获取号码,我怎样才能得到这个?
谢谢
最佳答案
您可以使用黑客解决方案。使用 strstr() 查找“STP”:然后查找以下 , 或 } 并提取中间的数字。
这是一个黑客行为。不保证有效。为了保证工作正常,您可以使用 JSON 解析器。
关于c - 在 C 中手动解析 JSON 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41570407/