Answerreqest := IdHTTP.Get('http://api.taxi.show.amberproduct.com/v1/request/info?token='+tokenkey+'&request_id='+idrequest+''); // Записываем ответ в answer
var
aJSValue: TJSONValue;
aJSObject, aJSObjArr: TJSONObject;
aJSArray: TJSONArray;
I: integer;
begin
Result := false;
aJSValue := TJSONObject.ParseJSONValue(Answerreqest) as TJSONValue;
if Assigned(aJSValue) then
begin
aJSObject := aJSValue as TJSONObject;
TabbedForm.memo3.Lines.Add('request: ' + aJSObject.GetValue('request').Value);
if aJSObject.GetValue('request').Value = '' then // до сюда отрабатывает я получаю в мемо пустое сообщение
begin
Result := true;
if Assigned(aJSObject) then
begin
aJSArray := aJSObject.GetValue('distance') as TJSONArray; // дальше хочу полчить хоть 1 элемент json но даже не ругается просто request
if Assigned(aJSArray) then
begin
Result := true;
TabbedForm.memo3.Lines.Add('price_1: ' + aJSObject.GetValue('price_1').Value);
TabbedForm.memo3.Lines.Add('count: ' + aJSArray.Count.ToString);
for I := 0 to aJSArray.Count - 1 do
begin
aJSObjArr := aJSArray.Items as TJSONObject; if Assigned(aJSObjArr) then begin TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_id').Value + ',' + aJSObjArr.GetValue('obj_acc_id').Value + ',' + aJSObjArr.GetValue('obj_cat_id').Value); TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_title').Value); TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_descr').Value); TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_address').Value); TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_url').Value); end; end; end; end; end; aJSValue.Free; end; end;
Изменено пользователем Andrey Efimov Поправил заголовок и удалил пустое место
Вопрос
Александр2010
Парин помогите распарсить вот это а то всю голову сломал(
{
"request": {
"people_count": 2,
"id": 66,
"order": null,
"price": null,
},
"distance": {
"price_1": 90,
"price_2": 80,
"price_3": 70,
"price_4": 60,
"id": 12,
"from_polygon_id": 20,
"fromPolygonName": "ВОСТОЧНАЯ КОМ ЗОНА",
"to_polygon_id": 18,
"toPolygonName": "16 район"
},
"status": 10,
"from_cord": null,
"to_cord": null
}
}
получаю вот так
Answerreqest := IdHTTP.Get('http://api.taxi.show.amberproduct.com/v1/request/info?token='+tokenkey+'&request_id='+idrequest+''); // Записываем ответ в answer
ответ приведен выше
HELP всю голову сломал уже пробовал как у (ZuBy)
var
aJSValue: TJSONValue;
aJSObject, aJSObjArr: TJSONObject;
aJSArray: TJSONArray;
I: integer;
begin
Result := false;
aJSValue := TJSONObject.ParseJSONValue(Answerreqest) as TJSONValue;
if Assigned(aJSValue) then
begin
aJSObject := aJSValue as TJSONObject;
TabbedForm.memo3.Lines.Add('request: ' + aJSObject.GetValue('request').Value);
if aJSObject.GetValue('request').Value = '' then // до сюда отрабатывает я получаю в мемо пустое сообщение
Изменено пользователем Andrey Efimovbegin
Result := true;
if Assigned(aJSObject) then
begin
aJSArray := aJSObject.GetValue('distance') as TJSONArray; // дальше хочу полчить хоть 1 элемент json но даже не ругается просто request
if Assigned(aJSArray) then
begin
Result := true;
TabbedForm.memo3.Lines.Add('price_1: ' + aJSObject.GetValue('price_1').Value);
TabbedForm.memo3.Lines.Add('count: ' + aJSArray.Count.ToString);
for I := 0 to aJSArray.Count - 1 do
begin
aJSObjArr := aJSArray.Items as TJSONObject;
if Assigned(aJSObjArr) then
begin
TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_id').Value + ',' + aJSObjArr.GetValue('obj_acc_id').Value + ',' +
aJSObjArr.GetValue('obj_cat_id').Value);
TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_title').Value);
TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_descr').Value);
TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_address').Value);
TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_url').Value);
end;
end;
end;
end;
end;
aJSValue.Free;
end;
end;
Поправил заголовок и удалил пустое место
Ссылка на комментарий
11 ответов на этот вопрос
Рекомендуемые сообщения