JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。
因為其簡潔明了的結構,被廣泛用于互聯網上的數據傳輸和存儲。
在C語言中,我們可以使用第三方庫來解析JSON字符串數組。
#include <stdio.h> #include <jansson.h> int main() { char *json_string = "[{\"name\":\"Peter\", \"age\":25}, {\"name\":\"Jack\", \"age\":30}]"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if(!root) { printf("json error on line %d: %s\n", error.line, error.text); return 1; } int i; for(i = 0; i < json_array_size(root); i ++) { json_t *data, *name, *age; const char *name_str; int age_int; data = json_array_get(root, i); name = json_object_get(data, "name"); age = json_object_get(data, "age"); name_str = json_string_value(name); age_int = json_integer_value(age); printf("name: %s, age: %d\n", name_str, age_int); } json_decref(root); return 0; }
在上述代碼中,我們使用了jansson庫來解析JSON字符串數組。首先,我們聲明了一個JSON字符串,該字符串是由兩個對象組成的數組。
然后,我們使用json_loads函數將JSON字符串加載到內存中,并按照格式要求進行解析。如果出現錯誤,該函數將返回NULL并將錯誤信息存儲在錯誤對象中。
接下來,我們遍歷JSON數組中的所有對象,并使用json_object_get函數獲取每個對象中的屬性。由于JSON中的數據類型是不確定的,因此我們將屬性值轉換為字符串或整數。
最后,我們使用json_decref函數釋放內存。
需要注意的是,該代碼僅適用于解析JSON字符串數組中的簡單對象。如果JSON字符串數組中的對象結構更加復雜,需要進行更多的判斷和處理。
上一篇grpc json對象
下一篇c 解析json 封裝