【问题标题】:Appending to JSON array in Ruby在 Ruby 中附加到 JSON 数组
【发布时间】:2014-05-12 16:07:40
【问题描述】:

我正在寻找附加到 ruby​​ 中的 JSON 数组。 JSON 数组如下所示:

{"data" : [{"name":"Chris","long":10,"lat":19}, {"name":"Scott","long":9,"lat":18}]}

我希望能够将另一个对象附加到这个数组,例如

{"name":"John","long":20,"lat":45}

我该怎么做?

【问题讨论】:

    标签: ruby arrays json append


    【解决方案1】:

    首先以这种方式将 JSON 转换为 Ruby 哈希:

    require 'json'
    rb_hash = JSON.parse('<your json>');
    rb_hash["data"] << { name: "John", long: 20, lat: 45 }
    
    rb_hash.to_json
    

    【讨论】:

    • 在 Ruby 中,你不能将哈希的键放在字符串中,除非你使用粗箭头 =&gt;。您的代码不会解析。您可以使用{ name: "John", long: 20, lat: 45 }{ "name" =&gt; "John", "long" =&gt; 20, "lat" =&gt; 45 } 来修复它。
    • 你不能像在 ruby​​ 中那样定义 json。它会给出语法错误。它应该是字符串。如果是字符串,JSON.parse 将起作用。
    • 等等,我怎么把它写入文件?
    • @user1614998 我的意思不是在对JSON.parse 的调用中,我的意思是您附加到数组的位置。我使用 Ruby 1.9.3 对其进行了测试,它就像我说的那样工作,它不会像你原来的那样工作。
    • @Cj1m 尝试 JSON.parse(File.open('').read) 读取 json
    【解决方案2】:

    如果你想附加现有的哈希,我们可以这样做 -

    hash = {} 
    

    我还有另一个哈希值 -

    sub_hash = {}
    

    那么-

    hash.merge!(sub_hash) 
    

    会很好用!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 2012-08-23
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多