Erro ao gerar JSON utilizando TJSONMarshal com campo data
Quando tento gerar o JSON esta dando erro em um capo data. O erro que ocorre é este:
The given "16/10/2016" local time is invalid (situated within the missing period prior to DST).
Este erro apenas ocorre com essa data, se for outro dia gera o JSON normal.
Esta é a função q estou utilizando:
Nesta função eu apenas passo um objeto e ela gera o JSON.
Quando o campo é data o valor do JSON esta saindo assim:
Eu acho q o erro esta no formato o campo esta saindo quando é data, tem alguma maneira de formatar esse campo antes de serializar?
The given "16/10/2016" local time is invalid (situated within the missing period prior to DST).
Este erro apenas ocorre com essa data, se for outro dia gera o JSON normal.
Esta é a função q estou utilizando:
function THelper.ObjetoToJson(value: TObject): String;
var lMarshal : TJSONMarshal;
valorString:String;
valor:String;
begin
lMarshal := TJSONMarshal.Create (TJSONConverter.Create);
valorString := lMarshal.Marshal(value).ToString();
result := valorString;
lMarshal.Free;
end;Nesta função eu apenas passo um objeto e ela gera o JSON.
Quando o campo é data o valor do JSON esta saindo assim:
"dataCheque": "2016-09-16T00:00:10.000Z",
Eu acho q o erro esta no formato o campo esta saindo quando é data, tem alguma maneira de formatar esse campo antes de serializar?
Danilo Pereira
Curtidas 0
Respostas
Jones Granatyr
22/09/2016
Olá Danilo,
Tente formatar a data usando este comando: FormatDateTime('yyyy/mm/dd',data);
Jones
Tente formatar a data usando este comando: FormatDateTime('yyyy/mm/dd',data);
Jones
GOSTEI 0
Danilo Pereira
22/09/2016
O campo é do tipo TDateTime, o erro ocorre na hora de transformar o objeto em JSON.
GOSTEI 0
Natanael Ferreira
22/09/2016
Danilo, esta solução que você mesmo deu no ano passado não é satisfatória?
https://www.devmedia.com.br/forum/erro-ao-serialiazar-objeto-com-campo-data/535883
https://www.devmedia.com.br/forum/erro-ao-serialiazar-objeto-com-campo-data/535883
GOSTEI 0
Danilo Pereira
22/09/2016
Queria ver se tinha outra forma de fazer sem tem q passar todos os campos do tipo Date para String, mas não consegui achar.
GOSTEI 0