在C語言中,JSON對象是一種常見的數據格式。有時候,我們需要將JSON對象轉換為列表。今天,我們將介紹如何使用C語言將JSON對象轉換為列表。
首先,讓我們看看如何轉換JSON對象為C語言的結構體。我們可以使用JSON-C庫來完成這個任務。
#include <stdio.h>
#include <json-c/json.h>
int main() {
const char * json_data = "{ \"name\" : \"Tom\", \"age\" : 18 }";
struct json_object * jobj = json_tokener_parse(json_data);
printf("Name = %s\n", json_object_get_string(json_object_object_get(jobj, "name")));
printf("Age = %d\n", json_object_get_int(json_object_object_get(jobj, "age")));
return 0;
}
使用json_tokener_parse函數,我們可以將JSON對象轉換為結構體。然后,我們可以使用json_object_object_get和json_object_get_XXX系列函數來獲取JSON對象中的數據。
接下來,我們將展示如何將JSON對象轉換為列表。為了方便,我們將假設JSON對象包含一個名為“people”的數組。
#include <stdio.h>
#include <json-c/json.h>
int main() {
const char * json_data = "{ \"people\" : [ { \"name\": \"Tom\", \"age\": 18 }, { \"name\": \"Jerry\", \"age\": 20 } ] }";
struct json_object * jobj = json_tokener_parse(json_data);
struct json_object * people_obj;
if (json_object_object_get_ex(jobj, "people", &people_obj) == TRUE) {
int people_len = json_object_array_length(people_obj);
int i;
for (i = 0; i < people_len; i++) {
struct json_object * person_obj = json_object_array_get_idx(people_obj, i);
printf("Name = %s\n", json_object_get_string(json_object_object_get(person_obj, "name")));
printf("Age = %d\n", json_object_get_int(json_object_object_get(person_obj, "age")));
}
}
return 0;
}
在這里,我們使用了json_object_object_get_ex函數來獲取“people”數組。然后,我們使用json_object_array_length函數來獲取數組長度。最后,我們使用json_object_array_get_idx函數來獲取數組中的元素,并使用json_object_object_get和json_object_get_XXX系列函數來獲取元素中的數據。
以上就是如何將C語言中的JSON對象轉換為列表的方法。希望這篇文章能對你有所幫助。
上一篇python 操作符
下一篇python 支付寶簽名