C語言的格式化 json 字符串可以使用庫函數 cJSON 進行操作。
#include "cJSON.h" void main() { /* 可以手動創建一個 json 對象 */ cJSON *root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "name", cJSON_CreateString("張三")); cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(18)); cJSON_AddItemToObject(root, "hobbies", cJSON_CreateStringArray((const char *[]){"籃球", "游泳"}, 2)); /* 使用 cJSON_Print 函數將 json 對象轉為字符串 */ char *jsonStr = cJSON_Print(root); printf("json字符串:%s\n", jsonStr); /* 先使用 cJSON_Parse 函數解析 json 字符串為 json 對象 */ cJSON *json = cJSON_Parse(jsonStr); /* 可以使用 cJSON_GetObjectItem 函數獲取 json 對象中的數據 */ cJSON *name = cJSON_GetObjectItem(json, "name"); cJSON *age = cJSON_GetObjectItem(json, "age"); cJSON *hobbies = cJSON_GetObjectItem(json, "hobbies"); printf("name:%s,age:%d\n", name->valuestring, age->valueint); printf("hobbies:%s,%s\n", cJSON_GetArrayItem(hobbies, 0)->valuestring, cJSON_GetArrayItem(hobbies, 1)->valuestring); /* 使用 cJSON_Delete 函數釋放 json 對象 */ cJSON_Delete(root); cJSON_Delete(json); }
使用 cJSON 庫可以方便地進行 json 字符串的格式化和解析,順利完成各種 json 數據的操作。