Como atualizar um valor JSON?
Fala galera do Show Delphi, tudo beleza? Aqui quem fala é Giovani e vamos para uma nova super dica de trabalho com arquivos json.
É muito comum ao utilizar os recursos JSON precisar atualizar algum valor em um objeto dentro do próprio JSON.
O método AddPair cria um NOVO par, mesmo que o nome já exista e não encontro como definir o valor, pois todas as funções / propriedades são somente leitura…
Então, eu realmente tenho que excluir o par e criá-lo?
Bem existem formas para diferentes versões de Delphi, e uma sugestão é a seguinte:
Para versões de Delphi anteriores ao 10.3 Rio
Procedure AddValue(pObj: TJSONObject; pName: String; pJSONValue: TJSONValue);
var vJsonPair: TJsonPair;
begin
vJsonPair:= pObj.Get(pName);
if Assigned(vJsonPair) then
begin
//preserving the place
vJsonPair.JsonValue.free;
vJsonPair.JsonValue:= pJSONValue;
end
else
pObj.AddPair(pName, pJSONValue);
end; |
Procedure AddValue(pObj: TJSONObject; pName: String; pJSONValue: TJSONValue);
var vJsonPair: TJsonPair;
begin
vJsonPair:= pObj.Get(pName);
if Assigned(vJsonPair) then
begin
//preserving the place
vJsonPair.JsonValue.free;
vJsonPair.JsonValue:= pJSONValue;
end
else
pObj.AddPair(pName, pJSONValue);
end;
Para versões de Delphi 10.3 Rio ou superiores
Procedure AddValue(pObj: TJSONObject; pName: String; pJSONValue: TJSONValue);
var vJsonPair: TJsonPair;
begin
vJsonPair:= pObj.Get(pName);
if Assigned(vJsonPair) then
begin
//putting the pair at the end of the object
pObj.RemovePair(pName);
pObj.AddPair(pName, pJSONValue);
end
else
pObj.AddPair(pName, pJSONValue);
end; |
Procedure AddValue(pObj: TJSONObject; pName: String; pJSONValue: TJSONValue);
var vJsonPair: TJsonPair;
begin
vJsonPair:= pObj.Get(pName);
if Assigned(vJsonPair) then
begin
//putting the pair at the end of the object
pObj.RemovePair(pName);
pObj.AddPair(pName, pJSONValue);
end
else
pObj.AddPair(pName, pJSONValue);
end;
Portanto, com o Delphi System.JSON, você deve verificar se o par existe para substituí-lo. E do Rio, você precisa excluir e criar o par novamente.
Beleza pessoal? Esta foi uma dica rápida e espero que possa ajudar.
Dúvidas ou sugestões? Deixe o seu comentário!
Uma abraço e até o próximo post. Valeu!
Como atualizar um valor JSON?
(How to update a JSON value?)
Fonte: https://stackoverflow.com/questions/61011455/how-to-update-a-json-value
-
Giovani Da Cruz
-
530 views
- 2 comentários
- 17 de maio de 2023
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo
Legal.
Agora, tem como pegar todo o conteúdo de um Json e colocar em um dataset ?
Olá Denis, tem sim, veja este post:
https://showdelphi.com.br/como-converter-json-para-dataset/