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

时间:2018-02-02 05:02:30

标签: crystal-lang

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

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

1 个答案:

答案 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": ""}))