JSON数组在C解析 [英] json array parsing in c
本文介绍了JSON数组在C解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图解析一个JSON数组,我面临的问题。
i am trying to parse a json array,i am facing problem.
我的数组是这样的:
configure: {
"id": 4,
"userId": 107,
"deviceMacAddress": "00:06:66:30:02:3C",
"medication": [{
"id": 11,
"version": 18,
"name": "name1",
"unit": "mg",
"forMed": "for1",
"schedule": [1]
}, {
"id": 45,
"version": 1,
"name": "sdga",,
"unit": "mg",
"forMed": "54234",
"schedule": [0,1,2,3,4,5,6]
}],
我能够获得药物阵列和打印总数组,但不能访问内部数组对象。
你能请提出任何解决方案或任何为例做这个用C语言?
i am able to access medication array and print total array,but not able to access objects inside array. can you pls suggest any solution or any example to do this using C language?
我的code
int main(int argc, char **argv) {
struct json_object *med_obj, *medi_obj, *tmp1_obj;
struct array_list *lArray;
charname[10] = {0};
static const char filename[] = "xyz.txt";
med_obj = json_object_from_file(filename);
medi_obj = json_object_object_get(med_obj, "medication");
lArray = json_object_get_array(medi_obj);
tmp1_obj = json_object_object_get(medi_obj, "name");
strcpy (name,json_object_to_json_string(tmp1_obj));
printf("name=%s\n",name);
}
问候,
列宁。
Regards, Lenin.
推荐答案
您需要使用来访问内部数组JSON_OBJECT *
变量。
试试这个:
struct json_object *med_obj, *medi_array, *medi_array_obj, *medi_array_obj_name;
int arraylen, i;
charname[10] = {0};
static const char filename[] = "xyz.txt";
med_obj = json_object_from_file(filename);
medi_array = json_object_object_get(med_obj, "medication");
// medi_array is an array of objects
arraylen = json_object_array_length(medi_array);
for (i = 0; i < arraylen; i++) {
// get the i-th object in medi_array
medi_array_obj = json_object_array_get_idx(medi_array, i);
// get the name attribute in the i-th object
medi_array_obj_name = json_object_object_get(medi_array_obj, "name");
// print out the name attribute
printf("name=%s\n", json_object_get_string(medi_array_obj_name));
}
这篇关于JSON数组在C解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文