c - 在 C 中手动解析 JSON 消息

标签 c json parsing

我需要在没有外部库的情况下手动解析来自服务器的 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/

相关文章:

android - 存储 Android facebook 登录数据以进行解析

c - 如何在c中查找两个特定字符串之间的文本

C 程序,激光线,警告 : passing argument 1 of 'sortowanie' from incompatible pointer type

c++ - 安装应用程序EventHandler/NSNotificationCenter不通知事件(NSN)

javascript - Node JS |类型错误 : Cannot read property 'first_name' of undefined

python - 2.2GB JSON 文件解析不一致

c++ - 为什么不解决 fork 过程中的变化?

javascript - 给出折线图的本地 json 文件

parsing - 匹配PARSE中的自定义token

parsing - Haskell 中的 Monadic Parse 论文中的示例