C語言提供了很多有用的庫,其中一個(gè)是cJSON庫,它可以很方便地解析JSON字符串,將其轉(zhuǎn)換為C語言中的對(duì)象數(shù)組。下面是一個(gè)簡單的示例。
#include <stdio.h> #include <stdlib.h> #include <sstring.h> #include <cJSON.h> int main() { char* json_string = "{\"name\":\"John\",\"age\":30}"; cJSON* json = cJSON_Parse(json_string); if(json == NULL) { printf("Error parsing JSON string.\n"); exit(1); } cJSON* name = cJSON_GetObjectItem(json, "name"); if(name == NULL) { printf("Error getting 'name' field.\n"); cJSON_Delete(json); exit(1); } cJSON* age = cJSON_GetObjectItem(json, "age"); if(age == NULL) { printf("Error getting 'age' field.\n"); cJSON_Delete(json); exit(1); } printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); cJSON_Delete(json); return 0; }
上面的代碼首先定義了一個(gè)JSON字符串,然后使用cJSON_Parse函數(shù)將其解析為一個(gè)cJSON對(duì)象。如果解析失敗,cJSON_Parse函數(shù)將返回NULL。
接下來,代碼使用cJSON_GetObjectItem函數(shù)獲取JSON對(duì)象中的"name"和"age"字段,并檢查它們是否存在。如果字段不存在,函數(shù)將返回NULL。
最后,代碼打印出"name"和"age"字段的值,并使用cJSON_Delete函數(shù)釋放cJSON對(duì)象。
這只是一個(gè)簡單的示例,您可以根據(jù)自己的需求擴(kuò)展它。