欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json字符串怎么轉數組對象

林玟書2年前7瀏覽0評論

在開發過程中,我們經常需要把 JSON 字符串格式轉換成數組對象。下面我們就來看一下如何使用 C 語言進行這個轉換。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main(void) {
char json_string[] =
"[{ \"name\": \"John\", \"age\": 35 }, { \"name\": \"Mary\", \"age\": 28 }]";
json_error_t error;
json_t *root = json_loads(json_string, 0, &error);
if (!root) {
fprintf(stderr, "error: on line %d: %s\n", error.line, error.text);
return 1;
}
if (!json_is_array(root)) {
fprintf(stderr, "error: root is not an array\n");
json_decref(root);
return 1;
}
size_t i;
json_t *element;
json_array_foreach(root, i, element) {
if (!json_is_object(element)) {
fprintf(stderr, "error: element %d is not an object\n", (int)(i + 1));
json_decref(root);
return 1;
}
const char *name;
json_t *value;
json_object_foreach(element, name, value) {
if (!json_is_string(value)) {
fprintf(stderr, "error: value of %s is not a string\n", name);
json_decref(root);
return 1;
}
printf("%s: %s\n", name, json_string_value(value));
}
}
json_decref(root);
return 0;
}

代碼中我們使用了 C 語言中的jansson庫來解析 JSON 字符串。我們首先加載 JSON 字符串并存儲在root中,然后判斷讀取的 JSON 數據是否是一個數組對象。如果不是,我們就拋出一個錯誤。接著,我們遍歷數組中的每個元素,再次判斷它們是否都是對象。如果一切正常,我們就可以讀取每個元素的屬性并打印到控制臺上。

注:以上代碼需要在編譯時鏈接 jansson 庫,否則會編譯錯誤。