C 語言中,要獲取 JSON 串并轉為數組,需要使用第三方庫,比如cJSON。cJSON 是一個輕量級的 JSON 解析庫,可以解析 JSON 字符串并生成相應的對象。
#include "cJSON.h"
#include <stdio.h>
int main() {
const char *json_str = "{\"name\": \"張三\", \"age\": 20, \"scores\": [80, 90, 85]}";
cJSON *root = cJSON_Parse(json_str);
if (root == NULL) {
printf("JSON 解析失敗\n");
return -1;
}
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
cJSON *scores = cJSON_GetObjectItem(root, "scores");
printf("name: %s\nage: %d\nscores: [\n", name->valuestring, age->valueint);
cJSON *score = NULL;
int i = 0;
cJSON_ArrayForEach(score, scores) {
printf(" %d: %d\n", i++, score->valueint);
}
printf("]\n");
cJSON_Delete(root);
return 0;
}
上面的代碼解析了一個包含姓名、年齡以及分數數組的 JSON 串,并將其輸出到控制臺。使用 cJSON_Parse 函數可以將 JSON 字符串解析為 cJSON 對象,然后使用 cJSON_GetObjectItem 函數可以獲取對象中的成員。同時,cJSON 也提供了 cJSON_ArrayForEach 宏用于遍歷數組。