Формат даты в TJSONObject
Я конвертирую TFDMemTable
в JSON через SaveToStream()
, Тогда я использую TJSONObject::ParseJSONValue()
чтобы получить объект JSON. После некоторого разбора я возвращаю JSON в строковом формате через ToString()
,
TStringStream *Stream = new TStringStream();
TJSONObject *Json = new TJSONObject();
fdMemTable->SaveToStream(Stream.get(), sfJSON);
TJSONObject *JsonParsed = (TJSONObject*) Json->ParseJSONValue(Stream->DataString);
...
return JsonParsed->ToString();
Все это время даты остаются в форме 20180329T013152
вместо 2018-03-29T01:31:52
, Я смотрю, есть ли какая-либо опция, которую я могу установить. TJsonOptions
кажется близким к тому, что я ищу, но, кажется, используется только с ObjectToJsonString()
,
Кто-нибудь знает такую опцию, или я должен сделать это преобразование в поле даты / времени?
1 ответ
В JSON нет типа даты / времени. Значения даты / времени являются просто произвольными строковыми значениями с форматированием. Так что, если TFDMemTable
предоставляет возможность указать форматирование даты / времени для выходных данных JSON, тогда вам придется обрабатывать это отдельно для каждого поля.
Кстати, вам не нужно создавать TJSONObject
объект для вызова ParseJSONValue()
:
TJSONObject *JsonParsed = (TJSONObject*) TJSONObject::ParseJSONValue(Stream->DataString);