我正在通过TFDMemTable
将SaveToStream()
转换为JSON。然后我使用TJSONObject::ParseJSONValue()
来获取JSON对象。经过一些解析后,我通过ToString()
以字符串格式返回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()
一起使用。
是否有人知道任何此类选项,或者我是否必须按日期/时间字段进行此转换?
答案 0 :(得分:1)
JSON中没有日期/时间类型。日期/时间值只是具有格式的任意字符串值。因此,除非TFDMemTable
提供了为其JSON输出指定日期/时间格式的选项,否则您必须在每个字段的基础上处理此问题。
顺便说一句,您不需要创建TJSONObject
对象来呼叫ParseJSONValue()
:
TJSONObject *JsonParsed = (TJSONObject*) TJSONObject::ParseJSONValue(Stream->DataString);