在使用C語言進行編程時,經常需要將JSON格式的數據轉換成字典格式。C語言中有很多支持JSON處理的庫,比如cJSON等。本文將以cJSON為例,介紹如何將JSON格式的數據轉換為字典。
#include "cJSON.h"
#include <stdio.h>
int main() {
const char* json_str = "{ \"name\": \"小明\", \"age\": 18, \"gender\": \"男\" }";
cJSON* json = cJSON_Parse(json_str);
if (json == NULL) {
printf("Parse JSON error!\\n");
return -1;
}
cJSON* name = cJSON_GetObjectItem(json, "name");
cJSON* age = cJSON_GetObjectItem(json, "age");
cJSON* gender = cJSON_GetObjectItem(json, "gender");
if (cJSON_IsString(name) && cJSON_IsNumber(age) && cJSON_IsString(gender)) {
printf("Name: %s\\nAge: %d\\nGender: %s\\n", name->valuestring, age->valueint, gender->valuestring);
}
cJSON_Delete(json);
return 0;
}
如上述代碼所示,我們先定義了一個JSON格式的字符串,然后使用cJSON_Parse函數將其解析為cJSON對象。接著,我們用cJSON_GetObjectItem函數分別從cJSON對象中獲取“name”、“age”和“gender”三個屬性的值。獲取到值后,我們使用cJSON_IsString和cJSON_IsNumber函數進行判斷,然后打印輸出。
使用cJSON處理JSON數據十分簡單,并且該庫支持雙向解析,既支持將JSON格式的數據轉換為cJSON,并且也能將cJSON轉換為JSON格式數據。如果您需要在C語言中處理JSON格式的數據,不妨嘗試使用cJSON庫。