cJSON предоставляет функцию
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string)
Я создал тестовую функцию
#include "cJSON.h"
const char *jsonstring = "{\"b\": {\"b1\":\"2b\"}}";
void jsontest(void)
{
cJSON *cJSON_data = cJSON_Parse(jsonstring);
char *buffer = cJSON_Print(cJSON_data);
printf("JSON_String:%s\r\n",buffer);
cJSON *bfound = cJSON_GetObjectItemCaseSensitive(cJSON_data,"b1");
printf("bfound: 0x%08x\n",(char*)bfound);
free(cJSON_data);
free(buffer);
}
Вывод
JSON_String:{
"b": {
"b1": "2b"
}
}
bfound: 0x00000000
`
Если я использую эту строку,
const char *jsonteststr1 = "{\"a\":\"1\",\"b\":\"2\",\"c\":\"3\"}";
GetObjectItemCaseSensitive()
найдет« a »,« b »и« c » .
GetObjectItemCaseSensitive()
, похоже, не повторяется.
Я что-то не так делаю? Разве я не понимаю, как использовать GetObjectItem()
?
Я использую версию 1.7.12