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

c 將 json字符串轉(zhuǎn)對(duì)象數(shù)組

老白1年前8瀏覽0評(píng)論

在開(kāi)發(fā)中,經(jīng)常會(huì)涉及到從前端獲取到j(luò)son字符串,然后將其轉(zhuǎn)成對(duì)象數(shù)組來(lái)進(jìn)行操作處理。這時(shí)候我們可以使用C語(yǔ)言中的Json-c庫(kù)來(lái)完成這個(gè)操作。

Json-c庫(kù)是一個(gè)C語(yǔ)言編寫(xiě)的庫(kù),用于解析JSon數(shù)據(jù)格式的庫(kù),其主要功能包括將Json字符串解析成C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)、將C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換成JSon字符串,非常方便實(shí)用。

下面是使用Json-c庫(kù)將Json字符串解析成對(duì)象數(shù)組的示例代碼:

#include <stdio.h>
#include <stdlib.h>
#include <json-c/json.h>
int main()
{
//json字符串
char *jsonstr = "{\"person\": [{\"name\": \"Tom\", \"age\": 20}, {\"name\": \"Jerry\", \"age\": 18}]}";
//解析json字符串
json_object *obj = json_tokener_parse(jsonstr);
//獲取person數(shù)組
json_object *person = json_object_object_get(obj, "person");
//獲取person數(shù)組元素個(gè)數(shù)
int length = json_object_array_length(person);
//遍歷person數(shù)組
for(int i=0; i<length; i++)
{
//獲取每一個(gè)person對(duì)象
json_object *per = json_object_array_get_idx(person, i);
//獲取name屬性
json_object *name = json_object_object_get(per, "name");
//獲取age屬性
json_object *age = json_object_object_get(per, "age");
//打印name和age
printf("name:%s,age:%d\n", json_object_get_string(name), json_object_get_int(age));
}
return 0;
}

示例代碼首先定義了一個(gè)Json字符串,然后使用json_tokener_parse()函數(shù)將字符串解析成json對(duì)象。接著使用json_object_object_get()函數(shù)獲取person數(shù)組,并使用json_object_array_length()函數(shù)獲取person數(shù)組元素個(gè)數(shù),最后使用json_object_array_get_idx()遍歷person數(shù)組,并通過(guò)json_object_object_get()函數(shù)獲取每一個(gè)person對(duì)象的name和age屬性,并打印輸出。

總結(jié):使用Json-c庫(kù)可以很方便地將Json字符串解析成對(duì)象數(shù)組,這樣我們可以在C語(yǔ)言中很方便地對(duì)Json數(shù)據(jù)進(jìn)行處理。