利用JSONC库遍历求出JSON数组的元素值
2015-01-23 16:38
351 查看
之前做项目,要求先解析出XML文件,并生成JSON格式字符串,这个做到了。但是后来又要求将JSON字符串转换为XML文件,由于在研究所里不能上网,查阅不到资料,自己也没有时间去阅读库函数。今天回来上网查了一下,原来只需两步即可,现在贴出代码。
test.c
<span style="font-size:24px;">#include<stdio.h>
#include<stdlib.h>
#include "json.h"
void test()
{
int i,j;
json_object* my_array = json_object_new_array();
json_object* my_obj1 = json_object_new_object();
json_object* my_obj2 = json_object_new_object();
json_object_object_add(my_obj1,"item1",json_object_new_int(1));
json_object_object_add(my_obj1,"item2", json_object_new_int(2));
json_object_object_add(my_obj1, "item3",json_object_new_int(3));
json_object_object_add(my_obj1,"item4", json_object_new_int(6));
json_object_object_add(my_obj2,"item5", json_object_new_int(1));
json_object_object_add(my_obj2,"item6", json_object_new_int(2));
json_object_object_add(my_obj2, "item7",json_object_new_int(3));
json_object_object_add(my_obj2,"item8", json_object_new_int(6));;
json_object_array_add(my_array,my_obj1);
json_object_array_add(my_array,my_obj2);
printf("%s\n", json_object_to_json_string(my_array));
//从数组中读取JSON对象
j = json_object_array_length(my_array);
//分配对象用来保存数组中的对象
json_object* obj[j];
for(i = 0;i < j;i++)
{
obj[i] = json_object_new_object();
}
//遍历出数组中到对象
for(i = 0;i < j;i++)
{
obj[i] = json_object_array_get_idx(my_array,i);
printf("obj[%d] = %s\n",i,json_object_to_json_string(obj[i]));
//从JSON对象中取key和val
json_object_object_foreach(obj[i],key,val)
{
printf("%s:%s\n",key,json_object_to_json_string(val));
}
}
}
int main()
{
test();
}</span>
运行结果:
1、生成的JSON字符串:[ { "item1": 1, "item2": 2, "item3": 3, "item4": 6 }, { "item5": 1, "item6": 2, "item7": 3, "item8": 6 } ]
2、obj[0] = { "item1": 1, "item2": 2, "item3": 3, "item4": 6 }
item1:1
item2:2
item3:3
item4:6
obj[1] = { "item5": 1, "item6": 2, "item7": 3, "item8": 6 }
item5:1
item6:2
item7:3
item8:6
test.c
<span style="font-size:24px;">#include<stdio.h>
#include<stdlib.h>
#include "json.h"
void test()
{
int i,j;
json_object* my_array = json_object_new_array();
json_object* my_obj1 = json_object_new_object();
json_object* my_obj2 = json_object_new_object();
json_object_object_add(my_obj1,"item1",json_object_new_int(1));
json_object_object_add(my_obj1,"item2", json_object_new_int(2));
json_object_object_add(my_obj1, "item3",json_object_new_int(3));
json_object_object_add(my_obj1,"item4", json_object_new_int(6));
json_object_object_add(my_obj2,"item5", json_object_new_int(1));
json_object_object_add(my_obj2,"item6", json_object_new_int(2));
json_object_object_add(my_obj2, "item7",json_object_new_int(3));
json_object_object_add(my_obj2,"item8", json_object_new_int(6));;
json_object_array_add(my_array,my_obj1);
json_object_array_add(my_array,my_obj2);
printf("%s\n", json_object_to_json_string(my_array));
//从数组中读取JSON对象
j = json_object_array_length(my_array);
//分配对象用来保存数组中的对象
json_object* obj[j];
for(i = 0;i < j;i++)
{
obj[i] = json_object_new_object();
}
//遍历出数组中到对象
for(i = 0;i < j;i++)
{
obj[i] = json_object_array_get_idx(my_array,i);
printf("obj[%d] = %s\n",i,json_object_to_json_string(obj[i]));
//从JSON对象中取key和val
json_object_object_foreach(obj[i],key,val)
{
printf("%s:%s\n",key,json_object_to_json_string(val));
}
}
}
int main()
{
test();
}</span>
运行结果:
1、生成的JSON字符串:[ { "item1": 1, "item2": 2, "item3": 3, "item4": 6 }, { "item5": 1, "item6": 2, "item7": 3, "item8": 6 } ]
2、obj[0] = { "item1": 1, "item2": 2, "item3": 3, "item4": 6 }
item1:1
item2:2
item3:3
item4:6
obj[1] = { "item5": 1, "item6": 2, "item7": 3, "item8": 6 }
item5:1
item6:2
item7:3
item8:6
相关文章推荐
- 如何利用JavaScript遍历JSON数组
- Linux下利用json-c从一个json数组中提取每一个元素中的部分字段组成一个新json数组
- 如何利用JavaScript遍历JSON数组
- 二维数组的遍历与利用sizeof关键字求数组的行数,列数,元素总数
- Jquery 遍历json和数组
- jquery 遍历json数组
- jQuery遍历json数组怎么整。。。
- ActionScript3.0中利用forEach循环遍历一个数组(Array)对象并且修改其中的项目
- ruby奇技淫巧 之 利用Fixnum的upto和downto方法来遍历数组
- 利用二分查找在循环递增数组中检索一个元素
- 利用 SHDocVw::IShellWindowsPtr m_spSHWinds 遍历所有IE浏览器,得到里面的所有元素
- 利用 SHDocVw::IShellWindowsPtr m_spSHWinds 遍历所有IE浏览器,得到里面的所有元素 还有一个是查找IE窗口里的submit按钮,模拟点击
- [转载]jquery遍历筛选数组的几种方法和遍历解析json对象
- jquery筛选数组之grep、each、inArray、map的用法及遍历json对象
- JQuery插件第二十个:利用json数组即时创建明细列表
- 使用json-lib遍历数组与对象(JSONArray与JSONObject)
- php数组元素的遍历
- 利用随机类生成数组,并用冒泡排序以及选择排序对不同数组的元素进行从小到大的排序
- jQuery 遍历json数组的实现代码
- 利用反射遍历对象属性输出json字符串