JSON是一種輕量級的數據交換格式,以文本形式呈現,常用于web服務之間的數據交換。在C語言中,我們可以使用json-c庫來解析和構建JSON數據。以下是JSON-C庫中的一些常用函數。
//解析JSON字符串 json_object* json_tokener_parse(const char *str); //構建一個空JSON對象 json_object* json_object_new_object(void); //添加一個鍵值對到JSON對象中 int json_object_object_add(json_object *jso, const char *key, json_object *val); //構建一個int型JSON值 json_object* json_object_new_int(int i); //構建一個字符串類型的JSON值 json_object* json_object_new_string(const char *s); //從JSON對象中獲取指定的鍵值對 json_object* json_object_object_get(const json_object *jso, const char *key); //從JSON對象中獲取int型的值 int json_object_get_int(const json_object *jso); //從JSON對象中獲取字符串類型的值 const char * json_object_get_string(const json_object *jso);
下面是一個示例代碼,演示如何解析JSON字符串并提取其中的值:
#include <stdio.h> #include <json-c/json.h> int main() { const char *json_str = "{ \"name\":\"apple\", \"price\":5 }"; json_object *obj = json_tokener_parse(json_str); json_object *name_obj = json_object_object_get(obj, "name"); json_object *price_obj = json_object_object_get(obj, "price"); const char *name = json_object_get_string(name_obj); int price = json_object_get_int(price_obj); printf("%s price is %d\n", name, price); return 0; } 輸出結果: apple price is 5
在使用JSON格式進行數據交換時,我們需要了解JSON的數據類型,以及可用的函數,方便我們完成JSON數據的解析和構建。
下一篇c# 字符串轉json