cJSON 解析JSON实例

前端之家收集整理的这篇文章主要介绍了cJSON 解析JSON实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

cJSON 解析的数据

The result of GET http://127.0.0.1:9871/iPhone_settings/mobile_devices/paired_devices

  1. {
  2. "STATUS": {"RESULT": "SUCCESS","DETAIL": "Success"},"ITEMS":
  3. [ { "HASHVAL": 769973531,"CNAME": "paired_devices","TYPE": "T_LIST_PAIRED_DEVICES_V1","NAME": "VALUE": [ {"DEVICE ID": "d1b9b0aa63c80427","DEVICE NAME": "VIZIO XR6P10"},{"DEVICE ID": "12345","DEVICE NAME": "JS_POSTMAN_1"},{"DEVICE ID": "fff3149104611fff","DEVICE NAME": "SIGMA_VIZIO_UI"} ] } ],"HASHLIST": [722496676,606446411],"URI": "/menu_native/dynamic/tv_settings/mobile_devices/paired_devices","PARAMETERS": {"FLAT": "SYS_NOERROR","HELPTEXT": "SYS_Failed","HASHONLY": "SYS_Failed"} }

code example

  1. int i = 0;
  2. cJSON* item_json = NULL;
  3. cJSON* array_json = NULL;
  4. cJSON* elem_json = NULL;
  5. cJSON* signleArrElem_json = NULL;
  6.  
  7. item_json = cJSON_GetObjectItem(root_json,"ITEMS");
  8. if (item_json == NULL) {
  9. MICRO_ERROR("No ITEMS string found: %s\n",cJSON_GetErrorPtr());
  10. ret = BE_Failed;
  11. goto EXIT;
  12. }
  13.  
  14. signleArrElem_json = cJSON_GetArrayItem(item_json,0);
  15. if (signleArrElem_json == NULL) {
  16. MICRO_ERROR("cJSON_GetArrayItem() Failed,: %s. \n",cJSON_GetErrorPtr());
  17. ret = BE_Failed;
  18. goto EXIT;
  19. }
  20. array_json = cJSON_GetObjectItem(signleArrElem_json,"VALUE");
  21. if (array_json == NULL) {
  22. MICRO_ERROR("No VALUE string found: %s\n",cJSON_GetErrorPtr());
  23. ret = BE_Failed;
  24. goto EXIT;
  25. }
  26.  
  27. for (i = 0; i < cJSON_GetArraySize(array_json); ++i) {
  28. item_json = cJSON_GetArrayItem(array_json,i);
  29. if (array_json == NULL) continue;
  30.  
  31. elem_json = cJSON_GetObjectItem(item_json,"DEVICE NAME");
  32. if (elem_json == NULL) {
  33. MICRO_ERROR("cJSON_GetObjectItem() Failed,cJSON_GetErrorPtr());
  34. ret = BE_Failed;
  35. goto EXIT;
  36. }
  37. memcpy(myDevicesList[i].deviceName,elem_json->valuestring,strlen(elem_json->valuestring));
  38. MICRO_ERROR("myDevicesList[i].deviceName: %s\n",myDevicesList[i].deviceName);
  39. elem_json = cJSON_GetObjectItem(item_json,"DEVICE ID");
  40. if (elem_json == NULL) {
  41. MICRO_ERROR("cJSON_GetObjectItem() Failed,cJSON_GetErrorPtr());
  42. ret = BE_Failed;
  43. goto EXIT;
  44. }
  45. .......
  46. MICRO_ERROR("myDevicesList[i].deviceId: %s\n",myDevicesList[i].deviceId);
  47. }
  48. .....
  49. EXIT:
  50. cJSON_Delete(root_json);
  51. return ret;

猜你在找的Json相关文章