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

c 解析嵌套格式json數據

吉茹定1年前7瀏覽0評論

JSON是一種常用的數據格式,很多應用程序需要解析JSON數據。如果JSON數據嵌套層次很深,那么解析就會比較復雜。下面我們介紹一種解析嵌套格式JSON數據的方法。

假設我們有以下數據:

{
"name":"example",
"age":30,
"married":true,
"address":{
"street":"ABC Street",
"city":"New York",
"state":"NY"
},
"phoneNumbers":[
{
"type":"home",
"number":"12345678"
},
{
"type":"work",
"number":"87654321"
}
]
}

為了方便解析和使用,我們通常需要將JSON數據轉換成對象或數組。在C語言中,我們可以使用json-c庫來解析JSON數據。下面是一段示例代碼:

#include <stdio.h>#include <json-c/json.h>int main() {
char *json_string = "{...}"; // JSON數據
json_object *json = json_tokener_parse(json_string); // 轉換為json對象
printf("name: %s\n", json_object_get_string(json_object_object_get(json, "name"))); // 獲取name屬性
// 獲取address對象中的屬性
json_object *address = json_object_object_get(json, "address");
printf("street: %s\n", json_object_get_string(json_object_object_get(address, "street")));
printf("city: %s\n", json_object_get_string(json_object_object_get(address, "city")));
printf("state: %s\n", json_object_get_string(json_object_object_get(address, "state")));
// 獲取phoneNumbers數組中的元素
json_object *phoneNumbers = json_object_object_get(json, "phoneNumbers");
int i;
for (i = 0; i < json_object_array_length(phoneNumbers); i++) {
json_object *phone = json_object_array_get_idx(phoneNumbers, i);
printf("type: %s, number: %s\n", json_object_get_string(json_object_object_get(phone, "type")), json_object_get_string(json_object_object_get(phone, "number")));
}
json_object_put(json); // 釋放內存
return 0;
}

通過以上代碼,我們可以輕松獲取JSON數據中的屬性和元素。假設JSON數據的結構更加復雜,則需要使用更多的對象和數組來解析。但是無論數據結構如何復雜,使用json-c庫解析JSON數據都是一個不錯的選擇。