pegar valor de retorno (string) no formato json
31/05/2017
0
Bom dia,
Eu tenho um retorno do JSON que está em uma variavel String e quero pegar o value dele....
Esse é o meu JSON
quero só pegar a informação do value;
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
+ 1
Responder
Post mais votado
31/05/2017
Teste seu código assim:
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
Responder
Mais Posts
31/05/2017
Robson Morais
tentei fazer dessa maneira;
mas no ja := (jp.JsonValue as TJSONArray); eu tenho esse erro
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'.
Responder
21/10/2020
Flavio Almeida
Boa noite, pessoal!
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.
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.
Responder
Clique aqui para fazer login e interagir na Comunidade :)