Я не могу получить определенное значение JSON с помощью TJSONObject
, я получаю ошибку Access violation at address xxxxxxxxx
.
У меня проблема с получением нужного значения с использованием его имени ключа из файла JSON, сейчас я нахожусьиспользуя TRESTClient
, TRESTRequest
, TRESTResponse
для получения данных JSON из Интернета, я использовал тот же URL-адрес JSON с Javascript и работает нормально, но в C ++ Builder это не так, он просто показывает ошибку Access violation at address xxxxxxxxx blablabla
, это происходит, когда я пытаюсь получить определенное значение JSON, используя его имя, например, для EX: "name": "sparky"
, но когда я получаю полный файл JSON, он успешно выполняется без ошибок.
Код:
TJSONObject *JSONObject = new TJSONObject();
__try
{
RESTClient1->BaseURL = "https://learnwebcode.github.io/json-example/animals-1.json";
RESTRequest1->Execute();
JSONObject = dynamic_cast<TJSONObject*>( TJSONObject::ParseJSONValue(RESTResponse1->JSONText) ) ;
TJSONPair *pair = JSONObject->Get("name");
Memo1->Text = pair->JsonValue->ToString();
}
__finally
{
delete JSONObject;
}
ОБНОВЛЕНИЕ: Это файл JSON, из которого я хочу получить значения.
[
{
"name":"Meowsy",
"species":"cat",
"foods":
{
"likes":
[
"tuna",
"catnip"
]
,
"dislikes":
[
"ham",
"zucchini"
]
}
}
,
{
"name":"Barky",
"species":"dog",
"foods":
{
"likes":
[
"bones",
"carrots"
]
,
"dislikes":
[
"tuna"
]
}
}
,
{
"name":"Purrpaws",
"species":"cat",
"foods":
{
"likes":
[
"mice"
]
,
"dislikes":
[
"cookies"
]
}
}
]