cJSON 解析JSON实例
发布时间:2020-12-16 18:53:04 所属栏目:百科 来源:网络整理
导读:cJSON 解析的数据 The result of GET http://127.0.0.1:9871/iPhone_settings/mobile_devices/paired_devices { " STATUS ": {" RESULT ": "SUCCESS" ," DETAIL ": "Success" } ," ITEMS ": [ { " HASHVAL ": 769973531 ," CNAME ": "paired_devices" ," TYP
cJSON 解析的数据The result of GET http://127.0.0.1:9871/iPhone_settings/mobile_devices/paired_devices {
"STATUS": {"RESULT": "SUCCESS","DETAIL": "Success"},"ITEMS":
[ { "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 exampleint i = 0;
cJSON* item_json = NULL;
cJSON* array_json = NULL;
cJSON* elem_json = NULL;
cJSON* signleArrElem_json = NULL;
item_json = cJSON_GetObjectItem(root_json,"ITEMS");
if (item_json == NULL) {
MICRO_ERROR("No ITEMS string found: %sn",cJSON_GetErrorPtr());
ret = BE_FAILED;
goto EXIT;
}
signleArrElem_json = cJSON_GetArrayItem(item_json,0);
if (signleArrElem_json == NULL) {
MICRO_ERROR("cJSON_GetArrayItem() failed,: %s. n",cJSON_GetErrorPtr());
ret = BE_FAILED;
goto EXIT;
}
array_json = cJSON_GetObjectItem(signleArrElem_json,"VALUE");
if (array_json == NULL) {
MICRO_ERROR("No VALUE string found: %sn",cJSON_GetErrorPtr());
ret = BE_FAILED;
goto EXIT;
}
for (i = 0; i < cJSON_GetArraySize(array_json); ++i) {
item_json = cJSON_GetArrayItem(array_json,i);
if (array_json == NULL) continue;
elem_json = cJSON_GetObjectItem(item_json,"DEVICE NAME");
if (elem_json == NULL) {
MICRO_ERROR("cJSON_GetObjectItem() failed,cJSON_GetErrorPtr());
ret = BE_FAILED;
goto EXIT;
}
memcpy(myDevicesList[i].deviceName,elem_json->valuestring,strlen(elem_json->valuestring));
MICRO_ERROR("myDevicesList[i].deviceName: %sn",myDevicesList[i].deviceName);
elem_json = cJSON_GetObjectItem(item_json,"DEVICE ID");
if (elem_json == NULL) {
MICRO_ERROR("cJSON_GetObjectItem() failed,cJSON_GetErrorPtr());
ret = BE_FAILED;
goto EXIT;
}
.......
MICRO_ERROR("myDevicesList[i].deviceId: %sn",myDevicesList[i].deviceId);
}
.....
EXIT:
cJSON_Delete(root_json);
return ret; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 如何在rails3中使用amistad gem?
- cocos2d-iphone – Cocos2d iPhone – Sprite cliping / ma
- ruby-on-rails – 自定义轨道配置部分
- sqlite数据库常用函数
- SQLite 创建数据库(http://www.w3cschool.cc/sqlite/sqlite
- ruby-on-rails – Rails应用程序在Heroku上崩溃
- 编译器DIY之———统计英文文本中的单词数,字符数和行数
- SQLite
- c# – 有没有办法在VS Debugger中自定义自定义对象的工具提
- ruby-on-rails – 如何在rails(4.1.5)中为yml.erb创建装置(