C語言中的JSON字符串是一種常見的數(shù)據(jù)格式,可以通過JSON格式對數(shù)據(jù)進行序列化和反序列化。而當JSON字符串中包含數(shù)組時,需要特別注意數(shù)組的格式和方式。
char jsonString[] = '{"name": "Jack", "age": 20, "friends": ["Tom", "Amy", "John"]}'
在上述代碼中,friends鍵對應的值是一個數(shù)組,包含了三個字符串。在C語言中,需要對這個JSON字符串進行解析,并將數(shù)組中的元素逐一取出。
一種常見的解析庫是cJSON,可以通過以下代碼將JSON字符串轉換為cJSON對象:
cJSON* root = cJSON_Parse(jsonString);
將數(shù)組中的元素取出可以通過以下方式實現(xiàn):
cJSON* friends = cJSON_GetObjectItem(root, "friends");
if (friends != NULL) {
int size = cJSON_GetArraySize(friends);
for (int i = 0; i < size; i++) {
cJSON* friend = cJSON_GetArrayItem(friends, i);
printf("%s ", friend->valuestring);
}
}
在上述代碼中,通過cJSON_GetObjectItem函數(shù)獲取到friends鍵對應的cJSON對象,再通過cJSON_GetArraySize函數(shù)獲取到數(shù)組的大小,然后通過cJSON_GetArrayItem函數(shù)逐一獲取數(shù)組中的元素。
需要注意的是,當JSON字符串中包含多個數(shù)組時,需要根據(jù)情況進行解析。
上一篇python+抓微信
下一篇vue $off 用法