cJSON庫是一款輕量級的C語言庫,用于解析和生成JSON格式數據。它可以方便地將JSON格式數據轉換為C語言中的數據結構,同時也可以將C語言中的數據結構轉換為JSON格式數據。在實際開發中,經常需要解析多個JSON串,本文將介紹如何使用cJSON解析多個JSON串。
首先,需要使用cJSON提供的函數cJSON_Parse()來解析JSON串,函數原型如下:
cJSON* cJSON_Parse(const char *value);
其中,value參數是需要被解析的JSON串。函數返回一個cJSON類型的指針,表示解析后的JSON數據。
下面是解析多個JSON串的代碼示例:
#include <stdio.h> #include <cJSON.h> int main() { const char* json1 = "{\"name\":\"Tom\",\"age\":12}"; const char* json2 = "{\"name\":\"Jerry\",\"age\":16}"; cJSON* root1 = cJSON_Parse(json1); cJSON* root2 = cJSON_Parse(json2); if (root1 && root2) { cJSON* name1 = cJSON_GetObjectItem(root1, "name"); cJSON* age1 = cJSON_GetObjectItem(root1, "age"); cJSON* name2 = cJSON_GetObjectItem(root2, "name"); cJSON* age2 = cJSON_GetObjectItem(root2, "age"); if (name1 && age1 && name2 && age2) { printf("name1=%s, age1=%d\n", name1->valuestring, age1->valueint); printf("name2=%s, age2=%d\n", name2->valuestring, age2->valueint); } cJSON_Delete(root1); cJSON_Delete(root2); } return 0; }
在以上代碼中,首先定義了兩個JSON串json1和json2,然后分別使用cJSON_Parse()函數將它們解析成JSON數據。接著,通過cJSON_GetObjectItem()函數獲取了JSON對象中的各個屬性,最后將它們打印出來。注意,打印JSON對象中的屬性時,需要使用valuestring和valueint成員。
最后,使用cJSON_Delete()函數釋放JSON數據的內存。