json array parsing in c
You need to access the inner array using a json_object *
variable.
Try this:
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 objectsarraylen = 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));}
You can use the jsoncpp to do this job.Array as a Json::Value, you can
medicationValue = jsonObject[medicationKey];Json::Value::Members member;member = medicationValue .getMemberNames();for (Json::Value::Members::iterator iter = member.begin(); iter != member.end(); iter++) { the element of medication here}
I hope will help you.