簡體   English   中英

如何使用Node JS將JSON數據轉換為表並存儲到Postgres數據庫中?

[英]How to convert JSON data into table and store into Postgres DB using Node JS?

我需要幫助將json數據轉換為數據表並存儲在postgresql DB中。

例如,

[{"name":"abc", "role":"swe"}, {"name":"xyz", "role":"Tester"}]

我想轉換上面的數據,或者說將數據存儲為包含行和列的表。

我想我們確實有一個名為“json”的數據類型,但它是存儲整個json的嗎? 但我想將我們在DB中看到的真實表格轉換成如下所示,

   name   |  role       
--------------+-------
"abc"     | "swe"
"xyz"     | "Tester

你能幫我解決一下如何解析它們嗎? 我正在使用Node JS。

任何指針都會有所幫助。 非常感謝你的時間。

我認為它會工作,將你的json轉換為對象,並使用npm包node-postgres(np)node-sql(sql || sql string builder for node)准備和插入它,參考以下代碼。

const pg = require('pg');
const sql = require('sql');

let usersToInsert = JSON.parse(`[{"name":"abc", "role":"swe"}, {"name":"xyz", "role":"Tester"}]`);

let User = sql.define({
  name: 'users',
  columns: [
    'name',
    'role'
  ]
});

async function run() {
  let client;
  try {
    client = new pg.Client({
      connectionString: 'postgresql://localhost/node_example'
    });
    await client.connect();
    let query = User.insert(usersToInsert).toQuery();
    console.log(query);
    let {rows} = await client.query(query);
    console.log(rows);
  } catch (e) {
    console.error(e);
  } finally {
    client.end();
  }
}

run();

可能是你需要的東西?

select jsonb_array_elements(j)->>'name' as name, jsonb_array_elements(j)->>'role' as role 
from (
    select '[{"name":"abc", "role":"swe"}, {"name":"xyz", "role":"Tester"}]'::jsonb as j
) t

如果是這樣,您只需執行INSERT INTO .. SELECT將數據保存到表中

演示: https//rextester.com/LIV68809

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM