【发布时间】:2021-04-14 14:40:40
【问题描述】:
我有一个 JSON 文件
{ "data": [
{
"channel_id":"test1",
"who_to_ping":"user124",
"workflow_status":"enabled",
"non_workflow_status":"disabled",
"auto_response_status":"enabled"
},
{
"channel_id":"test2",
"who_to_ping":"user476",
"workflow_status":"enabled",
"non_workflow_status":"disabled",
"auto_response_status":"enabled"
}
]}
我可以通过这样做访问数据并设置新用户:
channel_id = "test1"
name = "new user"
file_path = "#{Rails.root}/public/slack_config.json"
file = File.read(file_path)
data_hash = JSON.parse(file)
data_hash['data'][0]['who_to_ping'] = name
File.write(file_path, JSON.pretty_generate(JSON.dump(data_hash)))
我需要做的是只更新 channel_id 匹配的数组。例如 channel_id 将是一个传入的变量,它可能是 test1、test2 或其他值。如果我想将 test1 的 who_to_ping 更新为新名称 data_hash['data'][0]['who_to_ping'] 在传递的值是动态的情况下将不起作用。
我可以进行搜索以查看 channel_id 匹配哪个元素,然后如果它的第 8 个元素执行 data_hash['data'][7]['who_to_ping'] 但我确信有更有效的方法。这可能很简单,但我的搜索没有显示任何内容,但我不确定正确的搜索词是什么。
【问题讨论】:
标签: ruby-on-rails json