用keil5 环境下使用C语言用jsmn库写一个函数解析这段json{"method":"temThreshold","params":"30"}然后保存里面的值
时间: 2023-10-16 08:07:11 浏览: 50
在Keil5环境下使用C语言,您可以使用jsmn库来解析JSON数据,并提取其中的值。首先,您需要导入并配置jsmn库,然后编写解析函数。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include "jsmn.h"
void parseJson(const char *json) {
int i;
int r;
jsmn_parser p;
jsmntok_t t[10]; // 假设JSON最多包含10个token
jsmn_init(&p);
r = jsmn_parse(&p, json, strlen(json), t, sizeof(t)/sizeof(t[0]));
if (r < 0) {
printf("解析错误: %d\n", r);
return;
}
// 假设JSON的格式为 {"method":"temThreshold","params":"30"}
for (i = 1; i < r; i += 2) { // 跳过所有的键,只获取值
if (jsoneq(json, &t[i], "params") == 0) {
// 提取params字段的值
char value[10];
strncpy(value, json + t[i+1].start, t[i+1].end - t[i+1].start);
value[t[i+1].end - t[i+1].start] = '\0';
printf("提取到的值为: %s\n", value);
}
}
}
int main() {
const char *json = "{\"method\":\"temThreshold\",\"params\":\"30\"}";
parseJson(json);
return 0;
}
```
这个示例代码使用了jsmn库来解析JSON数据,并提取了params字段的值(即"30")。您可以根据自己的需求进行修改和扩展。