Как получить результаты из запроса в формате JSON? - PullRequest
0 голосов
/ 09 января 2019

Я строю лямбду на node.js и базе данных postgress. Когда я запрашиваю базу данных, используя:

client.query('SELECT name, age FROM user GROUP BY name')

Я получаю объект вроде:

[['john', 35], ['mary', 26]]

я хочу иметь действительный JSON, что-то вроде этого:

[{"name" : "john", "age" : 35}, {"name" : "mary", "age" : 25}]

Что такое хорошая библиотека или функция, которую я могу использовать для этого отображения? Я попробовал JSON.parse и JSON.stringify, но не повезло. Конечно, я сам могу написать функцию для создания объекта JSON и заполнения его значениями из базы данных, но я хочу посмотреть, есть ли лучший способ для этого.

Большое спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Вы можете использовать функции Postgres array_to_json и array_agg.

select array_to_json(array_agg(user_)) from user_;

Это производит:

[{"name":"john","age":35},{"name":"mary","age":26}]

Демо

0 голосов
/ 09 января 2019

Вы можете пройти через массив и сделать нужный json объект

Я положил образец кода здесь

const myJsonObj = [];
const output = [['john', 35], ['mary', 26]];

for (let index=0; index<output.length; index++) {
    const user = output[index];
    const name = user[0];
    const age = user[1];
    myJsonObj.push({
        name: name,
        age: age,
    });
}

console.log(myJsonObj);

Это даст желаемый результат, вы упомянули

[{name: 'john', возраст: 35}, {name: 'mary', возраст: 26}]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...