使用 Crystal 的 JSON.mapping 宏时强制空字符串引发异常
Force empty strings to raise exception when using Crystal's JSON.mapping macro
是否可以强制 JSON.mapping
引发解析异常 if/when 存在字符串成员,但其值为空字符串?
我已尝试使用可用选项(presence
、nilable
等),但均无济于事。我还尝试编写一个自定义转换器——看起来这可能会奏效——但我想确保我没有错过一个简单的解决方案来解决看起来应该是一个非常常见的用例。
这是一种将自定义验证代码添加到 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": ""}))
是否可以强制 JSON.mapping
引发解析异常 if/when 存在字符串成员,但其值为空字符串?
我已尝试使用可用选项(presence
、nilable
等),但均无济于事。我还尝试编写一个自定义转换器——看起来这可能会奏效——但我想确保我没有错过一个简单的解决方案来解决看起来应该是一个非常常见的用例。
这是一种将自定义验证代码添加到 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": ""}))