【发布时间】:2010-10-23 22:38:07
【问题描述】:
我需要在 Delphi (XE) 中自定义编组/取消编组 TDictionary。字典声明为:
TMyRecord = record
key11: integer;
key12: string;
...
end;
TMyDict: TDictionary<string, TMyRecord>;
现在,如果我在不注册自定义转换器的情况下编组字典,编组器会将所有类型的字段放入 JSON 字符串 - FOnValueNotify、FKeyCollection、FItems 等。
我需要的是某种关联数组的关联数组,即
{"key1":{"key11":"val1","key12":"val2"},"key2":{"key11":"val3","key12":"val4"}}
不幸的是,我不知道如何编写自定义转换器和还原器。我正在使用 Delphi XE 和内置的 TJSONMarshal 和 TJSONUnMarshal。
注意:此任务不需要使用 TDictionary。我只是想不出更好的东西。
【问题讨论】:
-
我真的不明白问题出在哪里。是不是你无法从字典中获取数据?无法生成 JSON 字符串?
-
从字典中获取数据是没有问题的。我只是想不通如何编写转换器和还原函数来达到预期的结果。
标签: json delphi generics marshalling