#include <stdio.h>
#include <json/json.h>
//[{"name":"土豆丝","price":10},{"name":"豆腐","price":5}]
int main(void)
{
//创建一个[]对象,相当于最大的容器
struct json_object *arr=json_object_new_array();
//创建两个{}对象,相当于小容器
struct json_object *obj1=json_object_new_object();
struct json_object *obj2=json_object_new_object();
//把数值转为json数值对象
struct json_object *value1=json_object_new_int(10);
struct json_object *value2=json_object_new_int(5);
struct json_object *value3=json_object_new_string("土豆丝");
struct json_object *value4=json_object_new_string("豆腐");
//键与值组成键值对,放入{}对象中
json_object_object_add(obj1, "name", value3);
json_object_object_add(obj1, "price", value1);
json_object_object_add(obj2, "name", value4);
json_object_object_add(obj2, "price", value2);
//把{}对象添加到[]对象中
json_object_array_put_idx(arr, 0, obj1);
json_object_array_put_idx(arr, 1, obj2);
//把json对象转为字符串
const char *p=json_object_to_json_string(arr);
printf("%s\n",p);
//把json字符串转为json对象 []
arr=json_tokener_parse(p);
//从[]对象中得到{}对象
obj1=json_object_array_get_idx(arr, 0);
obj2=json_object_array_get_idx(arr, 1);
//从{}对象中根据键得到值对象
value1=json_object_object_get(obj1, "name"); //土豆丝
value2=json_object_object_get(obj1, "price"); //10
value3=json_object_object_get(obj2, "name"); //豆腐
value4=json_object_object_get(obj2, "price"); //5
int n=json_object_get_int(value2); //10
int m=json_object_get_int(value4); //5
const char *p1=json_object_get_string(value1); //土豆丝
const char *p2=json_object_get_string(value3); //豆腐
printf("%s:%d %s:%d\n",p1,n,p2,m);
return 0;
}
json数据打包
最新推荐文章于 2024-07-29 11:49:07 发布