C 語(yǔ)言中字符串如何轉(zhuǎn)換成 JSON 對(duì)象?我們可以使用開(kāi)源的庫(kù) cJSON 來(lái)處理。
#include <stdio.h> #include <stdlib.h> #include <cJSON.h> int main(void) { const char *str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; cJSON *root = cJSON_Parse(str); if (root == NULL) { const char *error_ptr = cJSON_GetErrorPtr(); if (error_ptr != NULL) { fprintf(stderr, "Error before: %s\n", error_ptr); } return 1; } cJSON *name = cJSON_GetObjectItemCaseSensitive(root, "name"); cJSON *age = cJSON_GetObjectItemCaseSensitive(root, "age"); cJSON *city = cJSON_GetObjectItemCaseSensitive(root, "city"); printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("City: %s\n", city->valuestring); cJSON_Delete(root); return 0; }
在這個(gè)例子中,我們將字符串賦值給一個(gè)指向 char 的常量指針,然后將它傳遞給 cJSON_Parse() 函數(shù)來(lái)解析 JSON 對(duì)象。解析完后,我們使用 cJSON_GetObjectItemCaseSensitive() 函數(shù)來(lái)獲取對(duì)象中的元素,然后輸出它們的值。
最后,我們使用 cJSON_Delete() 函數(shù)來(lái)釋放內(nèi)存。