在C語言中使用JSON來收發消息是一種非常常見的方式。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,基于鍵值對的方式表示數據。在C語言中,使用第三方庫可以方便地對JSON進行解析和生成。
以下是使用C語言中的json-c庫來解析JSON消息的代碼示例:
#include <stdio.h>#include <json-c/json.h>int main() { char *json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; // 解析JSON字符串 json_object *json_obj = json_tokener_parse(json_str); // 讀取JSON對象中的鍵值對 json_object *name_obj; json_object *age_obj; json_object *city_obj; json_object_object_get_ex(json_obj, "name", &name_obj); json_object_object_get_ex(json_obj, "age", &age_obj); json_object_object_get_ex(json_obj, "city", &city_obj); // 打印讀取到的值 printf("Name: %s\n", json_object_get_string(name_obj)); printf("Age: %d\n", json_object_get_int(age_obj)); printf("City: %s\n", json_object_get_string(city_obj)); // 釋放內存 json_object_put(json_obj); return 0; }
以上代碼首先定義了一個JSON字符串,然后使用json_tokener_parse函數將其解析為一個JSON對象,接著通過json_object_object_get_ex函數獲取JSON對象中指定鍵名的鍵值對,最后使用json_object_get_string和json_object_get_int函數分別獲取字符串和數值類型的值,并打印輸出。最后,使用json_object_put函數釋放內存。
以下是使用C語言中的json-c庫來生成JSON消息的代碼示例:
#include <stdio.h>#include <json-c/json.h>int main() { // 創建JSON對象 json_object *json_obj = json_object_new_object(); json_object_object_add(json_obj, "name", json_object_new_string("John")); json_object_object_add(json_obj, "age", json_object_new_int(30)); json_object_object_add(json_obj, "city", json_object_new_string("New York")); // 生成JSON字符串 const char *json_str = json_object_to_json_string(json_obj); // 打印生成的JSON字符串 printf("%s\n", json_str); // 釋放內存 json_object_put(json_obj); return 0; }
以上代碼首先使用json_object_new_object函數創建一個JSON對象,然后使用json_object_object_add函數向JSON對象中添加鍵值對,最后使用json_object_to_json_string函數將JSON對象轉換成字符串并打印輸出。最后,使用json_object_put函數釋放內存。
上一篇es5 json 遍歷
下一篇c 中用json文件