C JSON是一種輕量級的數據交換格式,它基于JavaScript語言,但是易于人類閱讀和編寫。C JSON類型是JSON中的一種數據類型,用于表示數組和對象。
{ "name": "Tom", "age": 20, "hobbies": ["reading", "swimming", "travelling"], "address": { "country": "China", "city": "Beijing" } }
可以看出,C JSON類型在JSON中使用大括號表示對象,使用方括號表示數組。對象中的每個數據都由key-value對組成,其中key是一個字符串類型的數據,value可以是任何類型的數據。數組中每個元素可以是任何類型的數據。
C JSON類型在C語言中也有對應的實現,可以通過第三方的C JSON庫來處理JSON格式的數據。例如,在以下代碼中使用了C JSON庫來解析JSON格式的數據。
#include <stdio.h> #include <jansson.h> int main() { const char* json_string = "{\"name\":\"Tom\",\"age\":20,\"hobbies\":[\"reading\",\"swimming\",\"travelling\"],\"address\":{\"country\":\"China\",\"city\":\"Beijing\"}}"; json_t* root = json_loads(json_string, 0, NULL); json_t* name = json_object_get(root, "name"); const char* name_str = json_string_value(name); printf("Name: %s\n", name_str); json_t* hobbies = json_object_get(root, "hobbies"); json_t* hobby1 = json_array_get(hobbies, 0); const char* hobby1_str = json_string_value(hobby1); printf("Hobby 1: %s\n", hobby1_str); json_decref(root); return 0; }
以上是一個簡單的示例代碼,通過C JSON庫中的json_loads函數將JSON格式的字符串轉換為json_t格式的對象,接著通過json_object_get和json_array_get來獲取對象或數組中的具體數據,最后通過json_decref來釋放json_t對象。