javascript - 如何将 nil 序列化为 JSON 为 nil,而不是空的地方?
问题描述
在我的控制器/动作中,我有一些值为 nil
def my_action
@var1 = get_boolean_value || nil
@var2 = get_int_value || nil
@var3 = get_string_value || nil
# there many more, any one can happen to be nil
end
当我在其中的视图中创建 JSON 对象时,nil 值会呈现为空白:
:javascript
window.MyObj = {
var1: #{@var1},
var2: #{@var1},
var2: #{@var3}
}
问题是当一个值为 nil 时,它被呈现为一个空白空间,而不是 nil 本身。
:javascript
window.MyObj = {
var1: ,
var2: 33,
var2:
}
怎么治呢?
解决方案
人们不应该重新发明轮子。使用JSON
ruby标准库序列化json:
require 'json'
json = {var1: nil, var2: 42, var2: nil}.to_json
#⇒ "{\"var1\":null,\"var2\":42,\"var3\":null}"
接着:
:javascript
window.MyObj = json
推荐阅读
- python - txt 到 tfrecords 的转换
- c++ - 如何获取系统序列号?
- laravel - Laravel 中的登录系统向我显示这些凭据与我们的记录不匹配
- reactjs - 我应该始终从 connect 获取 redux store 还是通过 props 将其传递给子组件?
- arrays - C中数组反转中以下代码之间的区别
- caching - CakePHP 3 - 由完整 SQL 语句键入的缓存查询
- bash - Grep,awk 无法处理 HTML curl 文件(从 html 获取链接)
- c - 交换功能如何工作(使用指针)?
- db2 - 调用返回整数的 db2 udf
- android - 如何调用协程并获取其作业引用以在其他时间使用并监听完成?