TJSONObject 中的日期格式

Date format in TJSONObject

我正在通过 SaveToStream()TFDMemTable 转换为 JSON。然后我使用 TJSONObject::ParseJSONValue() 来获取 JSON 对象。经过一些解析后,我通过 ToString().

return 字符串格式的 JSON
  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() 一起使用。

有没有人知道任何这样的选项,或者我是否必须对每个 date/time 字段进行此转换?

JSON 中没有 date/time 类型。 Date/time 值只是带有格式的任意字符串值。因此,除非 TFDMemTable 为其 JSON 输出提供指定 date/time 格式的选项,否则您将不得不在 per-field 的基础上处理此问题。

顺便说一句,你不需要创建一个 TJSONObject 对象来调用 ParseJSONValue():

TJSONObject *JsonParsed = (TJSONObject*) TJSONObject::ParseJSONValue(Stream->DataString);