将json数组格式转成数组
start cmd
[ 27 01 f7 01 24 38 02 b7 42 6e ee 2f 69 46 72 21 74 44 c4 22 7a 92 d8 6a de 66 61 b1 1e 2f de ee 5c 31 57 db df 01 31 2d c9 01 01 c0 FB ]
set_ulpk
{“jsonrpc”:“2.0”,“type”:2,“id”:0,“method”:“method”,“message”:{“VALUE”:[56,2,183,66,110,238,47,105,70,114,33,116,68,196,34,122,146,216,106,222,102,97,177,30,47,222,238,92,49,87,219,223,1,49,45,201] },“N”:0,“query”:“”,“uri”:"factory_cmd/sys/key/ulpk}
- {“id”:0,“jsonrpc”:“2.0”,“result”:{“SUCCESS”:0},“uri”:“factory_cmd/sys/key/ulpk”}
int set_ulpk(unsigned char data[],int len)
{int r=0,i;std::string ret;std::string str;char buf[64];cJSON *setjson = cJSON_Parse(k_app_setulpk);cJSON *message = cJSON_GetObjectItem(setjson, "message");cJSON *VALUE = cJSON_GetObjectItem(setjson, "VALUE");cJSON_DeleteItemFromObject(message, "VALUE");cJSON *json_array = cJSON_CreateArray();for (int i = 0; i < len; ++i) {cJSON_AddItemToArray(json_array, cJSON_CreateNumber(data[i]));}cJSON_AddArrayToObject_1(message, "VALUE",json_array);char *modified_json = cJSON_PrintUnformatted(setjson);std::string s2=modified_json;if (0 == s_factoryCmd.set(modified_json, ret)) {printf("%s\n", __func__);printf(" - %s\n", modified_json);printf(" - %s\n", ret.c_str());DEBUG_PRINTF("%s\n", __func__);DEBUG_PRINTF(" - %s\n", modified_json);DEBUG_PRINTF(" - %s\n", ret.c_str());cJSON *json = cJSON_Parse(ret.c_str());cJSON *result = cJSON_GetObjectItem(json, "result");cJSON *SUCCESS = cJSON_GetObjectItem(result, "SUCCESS");if (cJSON_IsNumber(SUCCESS)) {printf("SUCCESS: %d\n", SUCCESS->valueint);}cJSON_Delete(json);return SUCCESS->valueint;}return r;
}
get_ulpk - {“jsonrpc”:“2.0”,“type”:1,“id”:0,“method”:“method”,“message”:null,“N”:0,“query”:“”,“uri”:“factory_cmd/sys/key/ulpk”}
- {“id”:0,“jsonrpc”:“2.0”,“result”:{“SUCCESS”:0,“VALUE”:[56,2,183,66,110,238,47,105,70,114,33,116,68,196,34,122,146,216,106,222,102,97,177,30,47,222,238,92,49,87,219,223]},“uri”:“factory_cmd/sys/key/ulpk”}
value:
[56,2,183,66,110,238,47,105,70,114,33,116,68,196,34,122,146,216,106,222,102,97,177,30,47,222,238,92,49,87,219,223]
char *get_ulpk()
{int r=0;char *p;std::string ret;char *json_string;char *gjson_string;const char *delim =",";int len=32,i=0;if (0 == s_factoryCmd.get(k_app_getulpk, ret)) {printf("%s\n", __func__);printf(" - %s\n", k_app_getulpk);printf(" - %s\n", ret.c_str());DEBUG_PRINTF("%s\n", __func__);DEBUG_PRINTF(" - %s\n", k_app_getulpk);DEBUG_PRINTF(" - %s\n", ret.c_str());cJSON *json = cJSON_Parse(ret.c_str());cJSON *result = cJSON_GetObjectItem(json, "result");cJSON *value = cJSON_GetObjectItem(result, "value");if (cJSON_IsArray(value)) {json_string = cJSON_Print(value);printf("value: %s\n", json_string);}else {return NULL;}removeFirstAndLastChar(json_string);// 去掉中括号[ ]p = strtok (json_string,","); //去掉, 全部保留数据while((p!=NULL)&&i<len) {//printf ("%s\n",p);ulpk_arry[i++]=atoi(p);p = strtok(NULL,",");} return ulpk_arry; //json_string;//SUCCESS->valueint;}return NULL;
}
//value: [56, 2, 183, 66, 110, 238, 47, 105, 70, 114, 33, 116, 68, 196, 34, 122, 146, 216, 106, 222, 102,97,177,30,47,222,238,92,49,87,219,223] 去掉中括号 [ ]
void removeFirstAndLastChar(char* str) {int len = strlen(str);if (len <= 2) {str[0] = '\0';return;}memmove(str, str + 1, len - 2);str[len - 2] = '\0';
}