我正在使用PG。我有一个表格,其中包含JSON类型的列。查询表很简单,但我不确定如何解码JSON字段:
$pg.exec('SELECT id, meta FROM users') do |result|
result.each do |row|
puts row['meta']
Oj.load(row['meta'])
end
end
row['meta']
字段不包含有效的JSON,因此Oj.load
引发了错误。通过PG gem解码JSON字段的最佳方法是什么?
答案 0 :(得分:2)
该列的类型为json[]
,解码方式为:
decoder = PG::TextDecoder::Array.new
$pg.exec('SELECT id, meta FROM users') do |result|
result.each do |row|
meta = decoder.decode(row['meta'])
meta.each do |meta_entry|
puts Oj.load(meta_entry)
end
end
end
这需要pg gem版本18。*