json数据打包

#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;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值