在Ruby中向JSON数组附加内容

5

我希望能够在Ruby中追加JSON数组。JSON数组如下所示:

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

我想要将另一个对象追加到该数组中,例如

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

我应该怎么做呢?

2个回答

10

首先要将 JSON 转换为 Ruby 哈希表,可以使用以下方法:

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

rb_hash.to_json

在 Ruby 中,你不能将哈希的键放入字符串中,除非你使用“fat arrow” =>。否则你的代码将无法解析。你可以通过使用 { name: "John", long: 20, lat: 45 }{ "name" => "John", "long" => 20, "lat" => 45 } 来修复它。 - user456814
在 Ruby 中不能这样定义 JSON,否则会出现语法错误。它应该被定义为字符串。如果是字符串,可以使用 JSON.parse 进行解析。 - Saravanan
@Cj1m 在 Ruby 中打开文件并替换其内容。 - user456814
@Cupcake,那似乎不起作用,这是我的代码的粘贴板:http://pastebin.com/dyGmMmW7 - Cj1m
1
尝试使用JSON.parse(File.open('<file_path>').read)来读取JSON文件,@Cj1m。 - Saravanan
显示剩余6条评论

2
如果您想要添加现有的哈希值,可以按照以下方式操作:
hash = {} 

最初的回答:

我有另一个哈希表-

sub_hash = {}

then-

hash.merge!(sub_hash) 

最初的回答:这将非常有效!

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