use crate::{QueryResult, QueryValue};
use super::utils::{escape_json_string, to_json_value};
pub fn render_json(result: &QueryResult) -> String {
let mut output = String::from("[");
for (row_index, row) in result.rows.iter().enumerate() {
if row_index > 0 {
output.push(',');
}
output.push('{');
for (column_index, column) in result.columns.iter().enumerate() {
if column_index > 0 {
output.push(',');
}
output.push_str(&escape_json_string(column));
output.push(':');
output.push_str(&to_json_value(
row.get(column_index).unwrap_or(&QueryValue::Null),
));
}
output.push('}');
}
output.push(']');
output
}