rtthread里使用cjson软件包解析JSON的程序,json里面包含:姓名、年龄、身高。
首先,需要头文件:#include "cjson.h"。然后,使用 cJSON *cJSON_Parse(const char *value) 来解析一个 JSON 字符串,并返回一个 cJSON 结构体。现在可以使用它来读取姓名,年龄,身高信息:
// Get the name
cJSON *name = cJSON_GetObjectItem(root, "name");
if (name != NULL) {
printf("Name: %s\n", name->valuestring);
}
// Get the age
cJSON *age = cJSON_GetObjectItem(root, "age");
if (age != NULL) {
printf("Age: %d\n", age->valueint);
}
// Get the height
cJSON *height = cJSON_GetObjectItem(root, "height");
if (height != NULL) {
printf("Height: %f\n", height->valuedouble);
}
解析这个数据包:
{
"tid":"tid123",
"key": "key123",
"userName": "name123",
"password": 123,
"ip": "1.1.1.1",
"port": 123,
"mountPoint": 123
}
首先,需要头文件:#include "cjson.h"。然后,使用 cJSON *cJSON_Parse(const char *value) 来解析一个 JSON 字符串,并返回一个 cJSON 结构体。 现在可以使用它来读取 tid、key、serName、password、ip、port、mountPoint 等信息:
// Get the tid
cJSON *tid = cJSON_GetObjectItem(root, "tid");
if (tid != NULL) {
printf("TID: %s\n", tid->valuestring);
}
// Get the key
cJSON *key = cJSON_GetObjectItem(root, "key");
if (key != NULL) {
printf("Key: %s\n", key->valuestring);
}
// Get the userName
cJSON *userName = cJSON_GetObjectItem(root, "userName");
if (userName != NULL) {
printf("User Name: %s\n", userName->valuestring);
}
// Get the password
cJSON *password = cJSON_GetObjectItem(root, "password");
if (password != NULL) {
printf("Password: %d\n", password->valueint);
}
// Get the ip
cJSON *ip = cJSON_GetObjectItem(root, "ip");
if (ip != NULL) {
printf("IP: %s\n", ip->valuestring);
}
// Get the port
cJSON *port = cJSON_GetObjectItem(root, "port");
if (port != NULL) {
printf("Port: %d\n", port->valueint);
}
// Get the mountPoint
cJSON *mountPoint = cJSON_GetObjectItem(root, "mountPoint");
if (mountPoint != NULL) {
printf("Mount Point: %d\n", mountPoint->valueint);
}