向Ruby JSON对象添加值

6

我是一名 Ruby on Rails 开发者。我的数据库中有一个 JSON 对象,格式如下:

{"data":[
    {"name":"A", "available":"1"},
    {"name":"B", "available":"0"}
]}

我想通过添加另一条记录来更新它,应该像这样:
{"data":[
        {"name":"A", "available":"1"},
        {"name":"B", "available":"0"},
        {"name":"C","available":"1"}
    ]}

我该怎么做呢?


这个其他记录是从哪里来的? - shivam
我正在我的网站上根据用户输入创建另一条记录。 - Sonali Gupta
这个对象有什么特别之处吗?如果你已经使用 Ruby 一段时间,我认为这只是基本的数组和哈希操作,你已经知道了。你提到了“数据库”,我想你可能想对它做些什么。 - The Lazy Log
2个回答

8

你可以尝试这个

json = { "data" => [
         {"name" => "A", "available" => "1"},
         {"name" => "B", "available" => "0"}
       ]}
json["data"].push({"name" => "C", "available" => "1"})

0
如果你正在使用ActiveRecord Serialize(或者Rails 5属性API),那么值已经被转换为哈希表了。
class Model
 serialize :some_field, JSON
end

record = Model.find(id)

record.some_field ==>
{"data":[
    {"name":"A", "available":"1"},
    {"name":"B", "available":"0"}
]}

record.some_field["data"] << {"name" => "C", "available" => "1"}
record.save

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接