色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c將json字符串轉對象數組中

錢琪琛2年前8瀏覽0評論

在使用C語言編程處理JSON數據時,我們通常會用到將JSON字符串轉換為對象數組的操作。下面我們來介紹一下如何使用C語言實現這一功能。

#include <stdio.h>
#include <stdlib.h>
#include <jansson.h>
int main() {
const char* jsonstr = "[{\"name\":\"Tom\",\"age\":20,\"score\":85},{\"name\":\"Jerry\",\"age\":18,\"score\":92}]";
json_t* root;
json_error_t error;
root = json_loads(jsonstr, 0, &error);
if (!root) {
printf("Failed to parse JSON: %s\n", error.text);
return 1;
}
if (!json_is_array(root)) {
printf("JSON root is not an array\n");
return 1;
}
size_t size = json_array_size(root);
for (size_t i = 0; i < size; i++) {
json_t* item = json_array_get(root, i);
if (!item || !json_is_object(item)) {
printf("Invalid JSON item %d\n", i);
continue;
}
const char* name = json_string_value(json_object_get(item, "name"));
int age = json_integer_value(json_object_get(item, "age"));
double score = json_real_value(json_object_get(item, "score"));
printf("name: %s, age: %d, score: %f\n", name, age, score);
}
json_decref(root);
return 0;
}

上述代碼中,我們首先定義了一個JSON字符串變量jsonstr,然后通過json_loads函數將其轉換為json_t類型的對象root。

接著,我們判斷root是否為數組類型。如果不是,說明JSON字符串格式不正確,需要進行錯誤處理。

如果root是數組類型,則通過json_array_size函數獲取數組大小,然后使用json_array_get函數逐個獲取數組元素。

對于每個數組元素,我們首先判斷其是否為對象類型。如果不是,說明JSON字符串格式不正確,需要進行錯誤處理。

如果數組元素是對象類型,則通過json_object_get函數逐個獲取屬性值(本例中為name、age和score),并將其轉化為對應的類型(字符串、整數和浮點數)。最后將解析出的屬性值打印輸出。

以上就是將JSON字符串轉換為對象數組的C語言代碼示例。希望本文對大家有所幫助。