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

C 含有數(shù)組的json字符串轉(zhuǎn)為對(duì)象

在C語言開發(fā)中,我們經(jīng)常需要處理JSON格式的字符串。其中包含數(shù)組的JSON字符串是我們經(jīng)常需要處理的情況之一。下面我們來談?wù)勅绾螌⒑袛?shù)組的JSON字符串轉(zhuǎn)為對(duì)象。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main() {
char json_string[] = "{\"name\": \"Tom\", \"age\": 18, \"hobbies\": [\"music\", \"reading\", \"swimming\"]}";
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if(!root) {
printf("error on line %d: %s\n", error.line, error.text);
return 1;
}
json_t *name = json_object_get(root, "name");
printf("name: %s\n", json_string_value(name));
json_t *age = json_object_get(root, "age");
printf("age: %d\n", json_integer_value(age));
json_t *hobbies = json_object_get(root, "hobbies");
size_t index;
json_t *value;
json_array_foreach(hobbies, index, value) {
printf("hobby[%zd]: %s\n", index, json_string_value(value));
}
json_decref(root);
return 0;
}

在本例中,我們使用了janson庫,這是一個(gè)C語言解析JSON的開源庫。代碼中的json_string是我們要解析的JSON字符串。我們使用json_loads函數(shù)將其轉(zhuǎn)為json_t類型的對(duì)象。如果轉(zhuǎn)換失敗,我們會(huì)打印錯(cuò)誤信息并退出程序。

接著,我們通過json_object_get函數(shù)獲取對(duì)象中的元素。例如,我們用json_object_get(root, "name")獲取name屬性的值,并打印出來。數(shù)字類型使用json_integer_value函數(shù)獲取,字符串類型使用json_string_value函數(shù)獲取。

最后,我們獲取數(shù)組類型的值。我們先用json_object_get(root, "hobbies")獲取hobbies屬性的值,它是一個(gè)數(shù)組類型。然后我們遍歷數(shù)組中的每一個(gè)元素,獲取其值并輸出。在遍歷數(shù)組時(shí),我們使用了json_array_foreach函數(shù),它會(huì)將數(shù)組中的每一個(gè)元素傳給回調(diào)函數(shù)。