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

c 對象反序列化成json

林子帆1年前7瀏覽0評論

對象序列化和反序列化是編程中經(jīng)常使用的技術(shù),C語言也提供了可以將對象序列化為json字符串的函數(shù)和將json字符串反序列化成對象的函數(shù)。下面我們來詳細了解一下。

C語言中反序列化json字符串的函數(shù)是json_c_object_from_string(),它的聲明如下:

struct json_object* json_c_object_from_string(const char *str);

這個函數(shù)接受一個json字符串,將其反序列化成一個json對象,并返回這個對象的指針,如果反序列化失敗則返回NULL。

我們可以使用這個函數(shù)來將一個json字符串反序列化為一個json對象:

#include <stdio.h>#include <json-c/json.h>int main(int argc, char **argv)
{
const char *json_str = "{\"name\": \"Tom\", \"age\": 20}";
struct json_object *json_obj = json_c_object_from_string(json_str);
if (json_obj)
{
printf("name: %s, age: %d\n", json_object_get_string(json_object_object_get(json_obj, "name")), json_object_get_int(json_object_object_get(json_obj, "age")));
}
return 0;
}

上面的代碼將會輸出:

name: Tom, age: 20

這個例子中,我們將一個json字符串反序列化成了一個json對象,并通過json_object_object_get()函數(shù)和json_object_get_string()/json_object_get_int()函數(shù)從對象中獲取了name和age字段的值。

注意,json_object_object_get()函數(shù)可以從json對象中獲取一個json對象,因此我們在獲取name字段和age字段時,需要先獲取到這兩個字段對應的json對象。