我正在使用 Ruby 创建一个 JSON 文件。 我需要在 JSON 文件中创建对象“companies”。
预期结果:
{"companies":[
{\"label\":\"Wayfair \",\"values\":[54]},
{\"label\":\"Move24 \",\"values\":[29]},
{\"label\":\"Auto1 \",\"values\":[23]},
...
]}
我得到了什么:
[
"{\"label\":\"Wayfair \",\"values\":[54,54]}",
"{\"label\":\"Move24 \",\"values\":[29,29]}",
"{\"label\":\"GetYourGuide \",\"values\":[28,28]}",
"{\"label\":\"Auto1.com \",\"values\":[20,20]}", ...
]
我的代码:
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
最佳答案
问题的核心是您正在创建一个 JSON 字符串数组,而不是一个数组,然后创建该 JSON。而不是:
companies_json = []
data_hash.each do |hash|
companies_json << hash.to_json
end
做:
companies = []
data_hash.each do |hash|
companies << hash
end
companies_json = companies.to_json
关于json - 如何在 Ruby 中创建 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40072448/