Hi
The code below will do the job but is there a better way to convert DB::ResultSet to JSON when database schema is unknown?
require "sqlite3"
require "db"
require "json"
db =DB.open("sqlite3://luckdb")
result_array =[] of DB::Any
column_names =[] of String
db.query_all("SELECT * FROM movie") do |rs|
column_names =rs.column_names
rs.column_names.each do
result_array << rs.read
end
end
i = 0
j = 0
result = [] of JSON::Any
(result_array.size/column_names.size).to_i32.times do
result_json = JSON.build do |json|
json.object do
column_names.size.times do
json.field column_names[i],find_type(result_array[j])
i+=1
j+=1
end
end
end
i =0
result <<(JSON.parse(result_json))
end
def find_type(value : DB::Any)
value =value.to_s
begin
value.to_f64
rescue exception
case value
when "false"
false
when "true"
true
else
value
end
end
end
p! result.to_json