10

私はjson配列を解析しようとしていますが、問題に直面しています。

私の配列は次のようなものです:

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言語を使用してこれを行うための解決策または例を教えてください。

マイコード

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);
}

よろしく、レーニン。

4

3 に答える 3

0

jsoncpp を使用してこのジョブを実行できます。Json::Valueとしての配列、次のことができます

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
}

お役に立てば幸いです。

于 2013-06-07T04:01:29.777 に答える