将 JSON 转换为带有冒号的 jbuilder 语法



我正在尝试将我的JSON对象转换为jbuilder语法,但JSON本身在其键中包含冒号字符。 我的 JSON 看起来像这样:

style: {
"ui:className": "custom-class"
}

我正在尝试这个:

json.style do
json.ui:className "custom-class"
end

您可以通过以下两种方式之一解决此问题(如果您不想转换密钥(。

  1. 使用Object#public_send泛型发送方法名称:

    json.style do
    json.public_send 'ui:className', 'custom-class'
    end
    
  2. 使用JBuilder#merge!合并属性:

    json.style do
    json.merge! 'ui:className' => 'custom-class'
    # or
    json.merge! 'ui:className': 'custom-class'
    end
    

您可以使用key_format!方法:

json.style do
json.key_format! -> (key) { (key == "ui_className") ? "ui:className" : key }
json.ui_className "custom-class"
end

最新更新