gpt4 book ai didi

json - 如何在嵌入式系统上用 jsmn 解析一个小的 JSON 文件?

转载 作者:行者123 更新时间:2023-12-04 01:40:04 28 4
gpt4 key购买 nike

我需要在嵌入式系统(只有 10K RAM/闪存)上解析一个小的 JSON 文件。 JSON 是:

{
"data1":[1,2,3,4,5,6,7,8,9],
"data2":[
[3,4,5,6,1],
[8,4,5,6,1],
[10,4,5,3,61],
[3,4,5,6,1],
[3,4,5,6,1],
[3,4,5,6,1]
]}

jsmn 看起来很符合要求,但它不像大多数 JSON 解析器,因为它只给你 token 。我试过了,但无法弄清楚。

有人可以分享一个如何用 jsmn 解析它的例子吗?

最佳答案

jsmn 会为您提供一组从左到右阅读 JSON 中的 token 的 token 。

在你的情况下:

token[0]: (outer) object, 2 children
token[1]: string token ("data1")
token[2]: array, 9 children
token[3]: primitive token (1)
etc...

进行解析的基本代码是:
int resultCode;
jsmn_parser p;
jsmntok_t tokens[128]; // a number >= total number of tokens

jsmn_init(&p);
resultCode = jsmn_parse(&p, yourJson, tokens, 256);

另一个技巧是获取 token 的值(value)。 token 包含原始字符串上数据的起点和终点。
jsmntok_t key = tokens[1];
unsigned int length = key.end - key.start;
char keyString[length + 1];
memcpy(keyString, &yourJson[key.start], length);
keyString[length] = '\0';
printf("Key: %s\n", keyString);

有了它,您应该能够弄清楚如何迭代数据。

关于json - 如何在嵌入式系统上用 jsmn 解析一个小的 JSON 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14388692/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com