JSON是一種輕量級的數據交換格式,C語言中可以實現JSON字符串的解析和生成。
C語言中解析JSON字符串需要使用第三方庫,比如 cJSON 庫,這個庫提供了解析、生成JSON字符串等能力。
#include <stdio.h> #include <cjson/cJSON.h> int main() { // 解析json字符串 char* json_str = "{ \"name\":\"Tom\", \"age\":18, \"hasDog\":true }"; cJSON* json = cJSON_Parse(json_str); if (json != NULL) { // 獲取json對象的值 cJSON* name = cJSON_GetObjectItem(json, "name"); printf("name: %s\n", name->valuestring); cJSON* age = cJSON_GetObjectItem(json, "age"); printf("age: %d\n", age->valueint); cJSON* hasDog = cJSON_GetObjectItem(json, "hasDog"); printf("hasDog: %d\n", hasDog->valueint); } // 生成json字符串 cJSON* new_json = cJSON_CreateObject(); cJSON_AddStringToObject(new_json, "name", "Jack"); cJSON_AddNumberToObject(new_json, "age", 20); cJSON_AddBoolToObject(new_json, "hasDog", false); char* new_json_str = cJSON_Print(new_json); printf("new json string: %s\n", new_json_str); cJSON_Delete(new_json); return 0; }
在解析JSON字符串時,可以通過 cJSON_Parse() 函數將JSON字符串轉化為 cJSON 對象,然后使用 cJSON_GetObjectItem() 函數獲取對象的值。
在生成JSON字符串時,可以通過 cJSON 庫提供的函數,比如 cJSON_CreateObject()、cJSON_AddStringToObject() 等將需要的值添加到 cJSON 對象中,再通過 cJSON_Print() 函數將 cJSON 對象轉化為 JSON 字符串。