【发布时间】:2017-04-19 20:43:06
【问题描述】:
我正在创建 JSON 输出,并希望在创建键值对之前检查值。有没有办法在创建 JSON 而不是稍后添加它时做到这一点?
我正在创建这个 JSON 输出:
sample_json = {
abc: "abc",
xyz: "xyz",
pqr: some_value unless some_value.blank?
}
在此示例中,我无法在创建 JSON 字符串时检查 unless some_value.blank?,因此我首先创建 JSON,然后在检查空白值后单独添加 pqr: some_value,如下所示:
sample_json = {
abc: "abc",
xyz: "xyz"
}
sample_json[:pqr] = some_value unless some_value.blank?
有没有办法像第一个示例一样在创建 JSON 本身时添加检查?
【问题讨论】:
-
向我们展示您这样做的尝试。没有你努力的证据,看起来你很快就放弃了,希望我们为你写。阅读“minimal reproducible example”和“How much research effort is expected of Stack Overflow users?”
-
不,没有办法进入 JSON 序列化过程。我会生成初始 JSON,计算你想要的任何值,然后将该值添加到原始对象并重新序列化它。但听起来你的问题是一个“XY Problem”,当你应该问 X 时,你问的是 Y。总体目标是什么?您尝试对 JSON 执行的操作很简单,但您的描述并不好。请参阅“minimal reproducible example”和链接页面。顺便说一句,您的示例 JSON 不会创建有效的 JSON 输出。
-
是所有值都需要验证,还是只需要验证其中一个(或几个)?您如何分配所有其他值?显示更多您的真实代码,以便我们更好地了解您的问题。
标签: ruby-on-rails json ruby