Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Chef中处理json的可选方法/属性_Json_Ruby_Chef Infra_Erb_Chef Recipe - Fatal编程技术网

如何在Chef中处理json的可选方法/属性

如何在Chef中处理json的可选方法/属性,json,ruby,chef-infra,erb,chef-recipe,Json,Ruby,Chef Infra,Erb,Chef Recipe,我有一个Chef-erb文件,我在其中打印来自json的值。json有一些可选属性,如下所示。请注意,json的最后一个对象没有“role”属性 "users": [ {"name" : "ccsup", "desc" :"abc", "role":"CS" }, {"name" : "support", "desc" :"xyz", "role":"Operation" }, {"name" : "admin", "desc" :"admin" } ] 我在一个ERB文件中读取这

我有一个Chef-erb文件,我在其中打印来自json的值。json有一些可选属性,如下所示。请注意,json的最后一个对象没有“role”属性

"users": [
  {"name" : "ccsup", "desc" :"abc", "role":"CS" },
  {"name" : "support", "desc" :"xyz", "role":"Operation" },
  {"name" : "admin", "desc" :"admin" }
]
我在一个ERB文件中读取这个json,并生成如下模板

<% users = @users_json -%>
<?xml version="1.0" encoding="UTF-8"?>
<users>
    <% users.each do |user| -%>
    <user lockCount="0" name="<%= user.name -%>" desc="<%= user.desc -%>" status="A">
        <% if user.role -%>
        <role><%= user.role -%></role>
        <% end -%>
    </user>
    <% end -%>
</users>

属性的
.foo
语法已在较新的Chef中删除,因此我们不建议您全部使用。相反,请执行
,然后对于需要默认

的内容,属性的
.foo
语法已在较新的Chef中删除,因此我们不建议您全部使用。相反,要做
,然后对于需要默认

完美的东西,这恰恰是缺少的。使用这种新的语法,它的效果非常好。谢谢。太好了,这正是我丢失的。使用这种新的语法,它的效果非常好。谢谢
Chef::Mixin::Template::TemplateError (Undefined method or attribute `role' on `node') on line #6