linux json c

1. json_object_from_file(char* file_name)

  从file_name 文件中以json格式读取数据,用例如下:

  

struct json_object *obj_file_info;
obj_file_info = json_object_from_file(/tmp/test.json);
printf("test.json: %s", json_object_to_json_string(obj_file_info));

代码会把“/tmp/test.json”内的json文本读取出来,赋值给了obj_file_info

然后通过“json_object_to_json_string(struct json_object *obj)”函数把json转换成json格式的文本输出。

#json_object_to_json_string(struct json_object *obj) 就是一个把json格式转换成string的函数。

2. print_json_to_file(struct json_object src, char* file_name)

     把json格式数据src输出到文件file_name中。

3. json_object_object_get_ex 

obj_a
{
	"test1":
	{
		"a1":"1"
		"a2":2
	}
	"test2":
	{
		"b1":"1"
		"b2":2
	}
}
json_object_object_get_ex(obj_a, "test1", &obj_b)
json_object_object_get_ex(obj_a, "test2", &obj_c)
obj_b 的结果为:
	"test1":
	{
		"a1":"1"
		"a2":2
	}
obj_c 的结果为:
	"test2":
	{
		"b1":"1"
		"b2":2
	}

4. 处理json数组

obj_a:
{
	"test1":
	{
		"a1":"1"
		"a2":2
	}
	"test2":
	{
		"b1":"1"
		"b2":2
	}
	"test3":[
		{
			"arr1":"value1"
		}
		{
			"arr2":"value2"
		}
		{
			"arr3":"value3"
		}
	]
}
json_object_object_get_ex(obj_a, "test3", &obj_arr)
obj_arr的内容:
	"test3":[
		{
			"arr1":"value1"
		}
		{
			"arr2":"value2"
		}
		{
			"arr3":"value3"
		}
	]
arr_leng = json_object_array_length(obj_arr)
json_object_array_length函数可以获取json数组长度

json_object_object_get_ex(obj_arr, "arr1", &obj_value)
上述函数可以把arr1对应的值“value1”取出来,通过转换函数转成string就可以了。

5.

初始化一个json:
struct json_object *obj_a=NULL;
obj_a = json_object_new_object(); //初始化了一块json空间
add_string_to_object(obj_a, "test", "hillo");
那么obj_a的值如下:
{
    “test”:"hillo"
}

6. json_object_object_add

该函数是向json文本中填加一个json文件
obj_a:
{
    "test": "hi"
}
obj_b:
{
    "test_b":"good"
}
 json_object_object_add(obj_a, "B_info", obj_b);
最终obj_a的内容如下:
obj_a:
{
    "test": "hi"
    “B_info”:
    {
        "test_b":"good"
    }
}

此为使用过程中记录,如有错误请帮忙指出,感谢感谢!

猜你喜欢

转载自blog.csdn.net/llanlianggui/article/details/104814098