首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Ruby中创建JSON对象

如何在Ruby中创建JSON对象
EN

Stack Overflow用户
提问于 2016-10-17 00:15:56
回答 2查看 34.2K关注 0票数 13

我正在用Ruby创建一个JSON文件。我需要在JSON文件中创建对象"companies“。

预期结果:

代码语言:javascript
复制
{"companies":[
    {\"label\":\"Wayfair \",\"values\":[54]},
    {\"label\":\"Move24 \",\"values\":[29]},
    {\"label\":\"Auto1 \",\"values\":[23]},
...
]}

我得到的是:

代码语言:javascript
复制
[  
   "{\"label\":\"Wayfair \",\"values\":[54,54]}",
   "{\"label\":\"Move24 \",\"values\":[29,29]}",
   "{\"label\":\"GetYourGuide \",\"values\":[28,28]}",
   "{\"label\":\"Auto1.com \",\"values\":[20,20]}", ...
]

我的代码:

代码语言:javascript
复制
data_hash = data_hash.map {|k,v| {label: k, values: v}}

companies_json = []

data_hash.each do |hash|
  companies_json << hash.to_json
end

File.open('companies.json', 'w') do |f|
  f << companies_json
end
EN

Stack Overflow用户

回答已采纳

发布于 2016-10-17 00:35:21

问题的核心是您创建了一个JSON字符串数组,而不是一个数组,然后生成JSON。而不是:

代码语言:javascript
复制
companies_json = []

data_hash.each do |hash|
  companies_json << hash.to_json
end

执行以下操作:

代码语言:javascript
复制
companies = []

data_hash.each do |hash|
  companies << hash
end

companies_json = companies.to_json
票数 12
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40072448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档