色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c語言中json解析

錢淋西2年前9瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。它易于閱讀和編寫,并且易于機器解析和生成。在C語言中,我們可以使用JSON解析庫來處理JSON格式的數據。

一個JSON數據可以被表示為key-value鍵值對的形式,其中key表示一個字符串,value則可以是字符串、數字、對象(由多個key-value組成)或數組(由多個value組成)。

{
"name": "John",
"age": 30,
"city": "New York",
"phone": [
{
"type": "home",
"number": "1234567890"
},
{
"type": "work",
"number": "0987654321"
}
]
}

在C語言中,我們可以使用JSON解析庫如cJSON來解析上述JSON格式的數據。以下是一個使用cJSON解析JSON字符串的示例:

#include#include "cJSON.h"
char *json_data = "{\
\"name\": \"John\",\
\"age\": 30,\
\"city\": \"New York\",\
\"phone\": [\
{\
\"type\": \"home\",\
\"number\": \"1234567890\"\
},\
{\
\"type\": \"work\",\
\"number\": \"0987654321\"\
}\
]\
}";
int main() {
cJSON *root = cJSON_Parse(json_data);
if (root == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
} else {
cJSON *name = cJSON_GetObjectItem(root, "name");
printf("name: %s\n", name->valuestring);
cJSON *age = cJSON_GetObjectItem(root, "age");
printf("age: %d\n", age->valueint);
cJSON *phone = cJSON_GetObjectItem(root, "phone");
int array_size = cJSON_GetArraySize(phone);
for (int i = 0; i< array_size; i++) {
cJSON *item = cJSON_GetArrayItem(phone, i);
cJSON *type = cJSON_GetObjectItem(item, "type");
cJSON *number = cJSON_GetObjectItem(item, "number");
printf("phone %d: %s - %s\n", i+1, type->valuestring, number->valuestring);
}
cJSON_Delete(root);
}
return 0;
}

在上面的示例中,我們首先定義了一個JSON字符串,并將其解析為cJSON對象。然后我們使用cJSON庫提供的函數cJSON_GetObjectItem和cJSON_GetArrayItem來從cJSON對象中獲取key對應的value。最后,我們使用cJSON_Delete函數來釋放cJSON對象占用的內存。

在C語言中,JSON解析庫是處理JSON格式數據的重要工具。通過使用cJSON,我們可以方便地處理各種JSON數據,包括從文件中讀取和向文件中寫入JSON數據。