C JSON是一種輕量級的數據交換格式,廣泛應用于前后端數據傳輸和存儲。在C語言中,我們可以使用json-c這個庫來解析和生成JSON數據。下面我們來看看如何通過json-c庫來獲取JSON中的值。
JSON數據中的值可以是字符串、數值、布爾值、數組、對象等等。我們可以使用不同的函數來獲取不同的數據類型。下面是一些常用的函數:
json_object *json_object_new_boolean(bool b); //創建一個布爾對象 json_object *json_object_new_int(int i); //創建一個整數對象 json_object *json_object_new_double(double d); //創建一個浮點數對象 json_object *json_object_new_string(const char *str); //創建一個字符串對象 json_object *json_object_new_array(); //創建一個數組對象 json_object *json_object_new_object(); //創建一個對象
我們可以使用json_object_get_type函數來獲取一個JSON對象的數據類型。比如:
json_object *jobj = json_tokener_parse("{\"name\":\"Jack\",\"age\":25,\"isMale\":true}"); enum json_type type = json_object_get_type(jobj); if (type == json_type_object) { printf("this is an object\n"); }
上面的代碼中,我們先將一個JSON字符串解析成一個json對象,然后使用json_object_get_type函數獲取這個對象的類型,再根據類型打印出相應的信息。
我們也可以通過JSON對象的鍵值來獲取相應的值。比如:
const char *name = "Jack"; json_object *jobj = json_tokener_parse("{\"name\":\"Jack\",\"age\":25,\"isMale\":true}"); json_object *val; if (json_object_object_get_ex(jobj, name, &val)) { printf("the value of %s is %s\n", name, json_object_get_string(val)); }
上面的代碼中,我們先使用json_tokener_parse函數將一個JSON字符串解析成一個json對象,然后使用json_object_object_get_ex函數通過鍵值"name"來獲取相應的值。最后使用json_object_get_string函數來獲取字符串類型的值并打印出來。
除此之外,json-c庫還提供了很多其他的函數,比如json_object_array_length、json_object_put等等,可以根據具體的需求進行使用。希望這篇文章對你理解C JSON的取值方式有所幫助。
上一篇vue實現流程審批