问题描述
我真的很喜欢mORMot / Synopse实现JSON处理的方式,尤其是可以在代码中使用JSON元素的方式(例如MyString := myjson.name
)。这对于包装只有一个Variant(JSON)且状态通过getter / setter访问的对象非常有用,如下所示:
TMyObject = class
private
FState: Variant;
function GetName: String;
public
constructor Create(AJson: Variant);
property Name: String read GetName;
end;
function TMyObject.GetName: String;
begin
Result := FState.name;
end;
它确实很强大,但是如果在相应的JSON文档中找不到元素,我想获取“默认”变体值(因此,如果没有“名称”,则上面的示例应返回一个空字符串)。
我不想使用NullStrictConvert
,因为那不是线程安全的,并且会影响我们程序的其余部分。当然,我可以检查VarIsNull(FState.name)
,但是然后我必须为每个元素执行此操作,并且我不希望没有此额外的样板。
有什么建议吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)