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

c json解析json

錢諍諍1年前8瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。C語言中有很多開源的JSON庫可以使用,包括cJSON、jansson等。在本文中,我們將介紹如何使用cJSON來解析JSON。

在使用cJSON前,我們需要先了解JSON的基本結構。JSON由對象和數組兩種結構組成,對象由“{}”包圍,屬性名和屬性值用“:”分隔,每個鍵值對之間用“,”分隔;數組由“[]”包圍,每個元素之間用“,”分隔。屬性值可以是字符串、數字、布爾值、對象或數組。

{
"name": "John",
"age": 30,
"isMale": true,
"address": {
"street": "Main Street",
"city": "New York"
},
"hobbies": [
"reading",
"traveling",
"photography"
]
}

現在我們假設已經有一個JSON字符串,我們需要解析它并取出其中的某些值。

#include <stdio.h>
#include <cJSON.h>
int main()
{
char *json_string = "{\"name\":\"John\",\"age\":30,\"isMale\":true,\"address\":{\"street\":\"Main Street\",\"city\":\"New York\"},\"hobbies\":[\"reading\",\"traveling\",\"photography\"]}";
cJSON *json = cJSON_Parse(json_string);   //解析JSON字符串
cJSON *name = cJSON_GetObjectItem(json, "name");  //取出name屬性
printf("name: %s\n", name->valuestring);  
cJSON *street = cJSON_GetObjectItem(cJSON_GetObjectItem(json, "address"), "street");  //取出address下的street屬性
printf("address.street: %s\n", street->valuestring);
cJSON *hobbies = cJSON_GetObjectItem(json, "hobbies");  //取出hobbies屬性
cJSON *hobby;
cJSON_ArrayForEach(hobby, hobbies)
{
printf("hobby: %s\n", hobby->valuestring);
}
cJSON_Delete(json);  //釋放內存
return 0;
}

在上面的代碼中,我們首先用cJSON_Parse函數將JSON字符串解析成cJSON對象,然后使用cJSON_GetObjectItem函數根據屬性名取出屬性。如果屬性值是一個對象或數組,我們可以使用cJSON_GetObjectItem和cJSON_ArrayForEach等函數來進一步獲取其中的值。最后,使用cJSON_Delete函數釋放內存。