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

c 把字符串轉換成json對象

錢斌斌2年前9瀏覽0評論

C語言中可以使用json-c這個開源庫來操作json對象,其中包含了json的解析和生成函數,可以很方便地把字符串轉換成json對象。

首先需要在代碼中引入json-c頭文件:

#include <json-c/json.h>

然后使用json_tokener_parse函數將字符串解析為json對象:

const char *json_string = "{\"name\":\"Tom\", \"age\":20}";
struct json_object *json_obj = json_tokener_parse(json_string);

此時json_obj就是一個指向json對象的指針,可以使用json_object_put函數來釋放該對象:

json_object_put(json_obj);

json對象有多種類型,包括json_type_null、json_type_boolean、json_type_int、json_type_double、json_type_string、json_type_array和json_type_object。可以使用json_object_get_type函數來獲取json對象的類型:

enum json_type type = json_object_get_type(json_obj);
switch (type)
{
case json_type_null:
printf("json object is null type\n");
break;
case json_type_boolean:
printf("json object is boolean type\n");
break;
case json_type_int:
printf("json object is integer type\n");
break;
case json_type_double:
printf("json object is double type\n");
break;
case json_type_string:
printf("json object is string type\n");
break;
case json_type_array:
printf("json object is array type\n");
break;
case json_type_object:
printf("json object is object type\n");
break;
}

可以使用json_object_object_get_ex函數來獲取json對象中的某個key對應的value:

struct json_object *name_obj;
json_bool ret = json_object_object_get_ex(json_obj, "name", &name_obj);
if (ret)
{
printf("name: %s\n", json_object_get_string(name_obj));
}
else
{
printf("cannot find name key\n");
}

這些是C語言中利用json-c庫將字符串轉換成json對象的基本技巧,通過這些技巧可以更方便地使用json。