JSON - Delphi

Delphi

JSON

20/10/2020

Bom dia.
Estaria precisando de um apoio, estou tentando ler um JSON, porem não estou conseguindo avançar.
Se alguém puder dar um dica...

JSON:
{
"listaoferta":[
{
"oferta_id":"1",
"produto_codigo_ean":"7891035210006",
"valor_oferta":"1.00"
},
{
"oferta_id":"2",
"produto_codigo_ean":"7891035210006",
"valor_oferta":"2.00"
},
{
"oferta_id":"3",
"produto_codigo_ean":"7891035210006",
"valor_oferta":"3.00"
}
]
}


Rotina de Leitura:

procedure TForm1.Button2Click(Sender: TObject);
var
jsonObject, JsonObject2: TJsonObject;
i: integer;
begin
jsonObject := TJsonObject.ParseJSONValue(MemoJSON.Text) as TJsonObject;
JsonObject2 := jsonObject.Get('listaofertas').JsonValue as TJsonObject;

ListBox1.Items.Add('OFERTA_ID:' + jsonObject.GetValue('oferta_id').Value);
ListBox1.Items.Add('CODEBAR:' + jsonObject.GetValue('produto_codigo_ean').Value);

for i := 0 to JsonObject2.Size - 1 do
ListBox1.Items.Add(JsonObject2.Get(i).JsonString.Value + ': ' + JsonObject2.Get(i).JsonValue.Value);
end;
Cristiano Fochesatto

Cristiano Fochesatto

Curtidas 0

Respostas

Cristiano Fochesatto

Cristiano Fochesatto

20/10/2020

Bom dia.
Estaria precisando de um apoio, estou tentando ler um JSON, porem não estou conseguindo avançar.
Se alguém puder dar um dica...

JSON:
{
"listaoferta":[
{
"oferta_id":"1",
"produto_codigo_ean":"7891035210006",
"valor_oferta":"1.00"
},
{
"oferta_id":"2",
"produto_codigo_ean":"7891035210006",
"valor_oferta":"2.00"
},
{
"oferta_id":"3",
"produto_codigo_ean":"7891035210006",
"valor_oferta":"3.00"
}
]
}


Rotina de Leitura:

procedure TForm1.Button2Click(Sender: TObject);
var
jsonObject, JsonObject2: TJsonObject;
i: integer;
begin
jsonObject := TJsonObject.ParseJSONValue(MemoJSON.Text) as TJsonObject;
JsonObject2 := jsonObject.Get('listaoferta').JsonValue as TJsonObject;

ListBox1.Items.Add('OFERTA_ID:' + jsonObject.GetValue('oferta_id').Value);
ListBox1.Items.Add('CODEBAR:' + jsonObject.GetValue('produto_codigo_ean').Value);

for i := 0 to JsonObject2.Size - 1 do
ListBox1.Items.Add(JsonObject2.Get(i).JsonString.Value + ': ' + JsonObject2.Get(i).JsonValue.Value);
end;
GOSTEI 0
Eliomar Souza

Eliomar Souza

20/10/2020

O campo listaoferta do objeto está retornando um array precisas usar a variável json do tipo array.

var
JsonListaofertaArray: TJSONArray;
JSONObject, JsonListaOfertaObject: TJSONObject;
begin
JSONObject := TJSONObject.ParseJSONValue(JSONString) as TJSONObject;
try
JsonListaofertaArray := JSONObject.GetValue('listaoferta') as TJSONArray;
JsonListaOfertaObject:= JsonListaofertaArray.Items[0] as TJSONObject;

JsonListaOfertaObject.GetValue('oferta_id').Value;
JsonListaOfertaObject.GetValue('produto_codigo_ean').Value;

finally
JSONObject.Free;
end;
GOSTEI 0
POSTAR