使用cJSON庫我們可以把JSON字符串轉換成JSON對象,代碼如下:
char* jsonString = "{\"name\":\"jerry\", \"age\":28}";
cJSON* json = cJSON_Parse(jsonString);
這里我們首先聲明了一個JSON串,然后通過cJSON_Parse()函數將其轉換成一個JSON對象。
如果JSON對象中包含了數組,我們可以通過cJSON_GetArrayItem()函數獲取數組元素,代碼如下:
char* jsonString = "{\"users\":[{\"name\":\"jerry\", \"age\":28}, {\"name\":\"tom\", \"age\":20}]}";
cJSON* json = cJSON_Parse(jsonString);
cJSON* users = cJSON_GetObjectItem(json, "users");
int size = cJSON_GetArraySize(users);
for(int i = 0; i< size; i++){
cJSON* user = cJSON_GetArrayItem(users, i);
char* name = cJSON_GetObjectItem(user, "name")->valuestring;
int age = cJSON_GetObjectItem(user, "age")->valueint;
}
這里我們首先通過cJSON_GetObjectItem()函數獲取到JSON對象中的數組,然后通過cJSON_GetArraySize()函數獲取數組元素個數,接著通過cJSON_GetArrayItem()函數獲取每個數組元素,最后通過cJSON_GetObjectItem()獲取元素中的屬性值。
最后別忘了需要釋放JSON對象內存,代碼如下:
cJSON_Delete(json);