我是Rails的新手(使用5.0.2)。我想从JSON文件中播放空的SQLite数据库。
我将我的产品资源搭建在seed.rb中:
records = JSON.parse(File.read('/home/projects/test1/public/products.json'))
records.each do |record|
ModelName.create!(record)
end
然后启动rake db:seed.
我收到了一个错误: 耙子流产了! JSON :: ParserError:409:' {
的意外令牌我的JSON由具有各种属性的产品组成:
[
{
"model": "Brand",
"brand": "Brand",
"price": 19.99,
"currency": "GBP",
"link1": "https://www.amazon.co.uk/Call-Duty-Ghosts-Hardened-Xbox/dp/B00ECQJ0BS/ref=pd_sim_107_4?_encoding=UTF8&psc=1&refRID=9GE6A8BW61S1FG4H3ZRJ",
"link2": "",
"size1": "{min: "5",max: "90"}",
"net_weight": "263 kg",
"size2": "{w: "19.4",h: "11.7",z: "12.7"}",
"d1": "",
"color": "['Black','White']",
"materials": "plastic+concrete, glass ceiling",
"models": "['model 1', 'model 2', 'model 3', 'model 100']",
"props": "['prop1', 'Prop1', 'Prop1']",
"": "",
"size3": "{w: "100",h: "200",z: "500"}"
},
]
如何修复此JSON文件并使用其中的产品数据正确播种我的数据库?
这是将手动创建的JSON文件导入Rails的最佳方式,还是尝试其他方法更好?
答案 0 :(得分:1)
问题在于Array.prototype.slice.call(buffer.slice());
,size1
和size2
属性。对于每个键,该值包含双引号。如果您将它们转换为单引号或通过在它们之前放置size3
来转义它们,那么您的JSON应该正确解析。