如果/当存在字符串成员时,是否可以强制JSON.mapping
引发解析异常,但其值是空字符串?
我尝试使用可用选项(presence
,nilable
等)无济于事。我也试过编写一个自定义转换器 - 看起来这可能会起作用 - 但我想确保我不会错过一个简单的解决方案,看起来它应该是一个非常常见的用例。
答案 0 :(得分:2)
以下是将自定义验证代码添加到JSON.mapping
生成的方法
require "json"
struct Foo
JSON.mapping(field: String)
def initialize(pull : JSON::PullParser)
previous_def
raise JSON::Error.new("empty field") if field.empty?
end
end
Foo.from_json(%({"field": ""}))