如何重新格式化 oracledb json 输出?

How to reformat oracledb json output?

使用带有 outFormat:oracledb.OBJECT 选项 returns json 的 oracledb node.js 驱动程序,但列名的格式为大写(属性 名称遵循 Oracle 的标准名称-套管规则),像这样: {"ID":“1”} 是否可以将它们设为小写,如下所示: {"Id":"1"}?

JSON_OBJECT 在 Oracle Database 12.2 中介绍对我不可用。

只需使用列别名:

const oracledb = require('oracledb');
const config = require('./dbConfig.js');

(async function() {
  let conn;
  let result;

  try {
    conn = await oracledb.getConnection(config);

    result = await conn.execute(
     `select first_name || ' ' || last_name name,
        email
      from employees
      where rownum = 1`,
      [], // no binds
      {
        outFormat: oracledb.OBJECT
      }
    );

    // This is the problem, uppercase column names, no?
    console.log(result.rows); // [ { NAME: 'Steven King', EMAIL: 'SKING' } ]

    result = await conn.execute(
     `select first_name || ' ' || last_name "name",
        email "email"
      from employees
      where rownum = 1`,
      [], // no binds
      {
        outFormat: oracledb.OBJECT
      }
    );

    // Here's the result with case sensitve aliases
    console.log(result.rows); // [ { name: 'Steven King', email: 'SKING' } ]
  } catch (err) {
    // Will throw, but only after finally runs
    throw err; 
  } finally {
    if (conn) {
      try {
        await conn.close();
      } catch (err) {
        console.log('error closing conn', err);
      }
    }
  }
}());

或"process"之后的结果。您可能会发现这相关: https://jsao.io/2015/07/relational-to-json-with-node-js/