使用 Crystal 的 JSON.mapping 宏时强制空字符串引发异常

Force empty strings to raise exception when using Crystal's JSON.mapping macro

是否可以强制 JSON.mapping 引发解析异常 if/when 存在字符串成员,但其值为空字符串?

我已尝试使用可用选项(presencenilable 等),但均无济于事。我还尝试编写一个自定义转换器——看起来这可能会奏效——但我想确保我没有错过一个简单的解决方案来解决看起来应该是一个非常常见的用例。

这是一种将自定义验证代码添加到 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": ""}))