Fórum pegar valor de retorno (string) no formato json #581973
31/05/2017
0
Eu tenho um retorno do JSON que está em uma variavel String e quero pegar o value dele....
Esse é o meu JSON
{"error":{"code":400,"message":{"lang":"en-us","value":"Bad request: Error in parameter n_serie:Attribute \\"n_serie\\" not found in pedido_venda.inclui"}}}
quero só pegar a informação do value;
Robson Morais
Curtir tópico
+ 1Post mais votado
31/05/2017
var
jsonObj, jSubObj: TJSONObject;
jv: TJSONValue;
begin
jsonObj := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(Memo1.Text), 0)
as TJSONObject;
Memo1.Lines.Clear;
jv := jsonobj.Get('error').JsonValue;
jsubObj := jv as TJSONObject;
jv := jsubObj.Get('message').JsonValue;
jsubObj := jv as TJSONObject;
jv := jsubObj.Get('value').JsonValue;
ShowMessage(jv.Value);
end;Natanael Ferreira
Gostei + 2
Mais Posts
31/05/2017
Robson Morais
procedure TfrmPSyncBack.Button1Click(Sender: TObject);
var
jsonObj, jSubObj: TJSONObject;
ja: TJSONArray;
jp, jSubPar: TJSONPair;
i, j: integer;
begin
jsonObj := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(Memo1.Text), 0) as TJSONObject;
//dada a seguinte string em notação JSON que será convertida pela função ParseJSONValue
//em um objeto nativo do delphi do tipo TJSONObject
Memo1.Lines.Clear;
jp := TJSONPair.Create;
jp := jsonObj.Get(0); //pega o par zero
ja := TJSONArray.Create;
ja := (jp.JsonValue as TJSONArray); // do par zero pega o valor, que é array
//quantidade de pares do objeto
Memo1.Lines.Add('quantidade de elementos ' + IntToStr(ja.Size));
jSubObj:= TJSONObject.Create;
jSubPar := TJSONPair.Create;
for i := 0 to ja.Size - 1 do //itera o array para pegar cada elemento
begin
jSubObj := (ja.Get(i) as TJSONObject); //pega cada elemento do array, onde cada
//elemento é um objeto, neste caso, em função da string JSON montada acima
Memo1.Lines.Add('');
Memo1.Lines.Add('No elemento ' + IntToStr(i) +
' a quantidade de pares do objeto é = ' + IntToStr(jSubObj.Size) ); //quantidade de pares do objeto
for j := 0 to jSubObj.Size - 1 do //itera o objeto para pegar cada par
begin
jSubPar := jSubObj.Get(j); //pega o par no índice j
//do par pega separado a chave e o valor usando Value
Memo1.Lines.Add(jSubPar.JsonString.Value + ' : ' + jSubPar.JsonValue.Value);
end;
end;
end;
mas no ja := (jp.JsonValue as TJSONArray); eu tenho esse erro
First chance exception at $73F4A9F2. Exception class EInvalidCast with message 'Invalid class typecast'.
Gostei + 0
31/05/2017
Robson Morais
Gostei + 0
21/10/2020
Flavio Almeida
Tenho um Json que no retorno de um campo Data ele traz um inteiro, por exemplo: O campo na tabela é 10/08/2003 ele retorna 37843. Tem como eu fazer ele retornar no formato de Data mesmo?
Desde já, agradeço a ajuda de todos.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)