您的位置:首页 > Web前端 > JavaScript

利用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: