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

c json解析為字符串數組對象數組

林玟書2年前8瀏覽0評論

JSON是一種輕量級的數據交換格式,廣泛應用于網絡服務的數據傳輸和存儲中。而在C語言中解析JSON數據,可以使用第三方開發庫cJSON。

在cJSON中,將JSON數據對象化為cJSON\_t類型的結構體,使用cJSON_Parse()函數解析JSON數據,將其轉換為cJSON\_t類型的結構體,然后根據JSON數據格式,使用cJSON_GetObjectItem()函數獲取JSON數據中的各個字段。

// 示例JSON數據: 
// {"name": "John", "age": 30, "address":["USA","China"]}
char *json_data = "{\"name\": \"John\", \"age\": 30, \"address\":[\"USA\",\"China\"]}";
// 解析JSON數據
cJSON* json = cJSON_Parse(json_data);
// 獲取JSON數據中的“name”字段
cJSON* name_item = cJSON_GetObjectItem(json, "name");
char* name = name_item->valuestring;   // 輸出結果: "John"
// 獲取JSON數據中的“age”字段
cJSON* age_item = cJSON_GetObjectItem(json, "age");
int age = age_item->valueint;   // 輸出結果:30
// 獲取JSON數據中的“address”數組
cJSON* address_item = cJSON_GetObjectItem(json, "address");
cJSON* address_array_item = cJSON_GetArrayItem(address_item, 0);
char* address1 = address_array_item->valuestring;  // 輸出結果: "USA"
address_array_item = cJSON_GetArrayItem(address_item, 1);
char* address2 = address_array_item->valuestring;  // 輸出結果: "China"
// 釋放cJSON變量內存
cJSON_Delete(json);

在以上示例中,我們通過cJSON_GetArrayItem()函數獲取了JSON數據中的數組,并通過遍歷數組的方式獲取了數組中每個元素的值。

通過以上實例,我們了解了如何在C語言中解析JSON數據,并轉換為C語言中的相應數據類型,可以將其用于API透傳、數據持久化等場景中。