SQL 2016 JSON返回多个记录集

时间:2017-08-24 14:10:35

标签: sql-server json rest express

我正在尝试使用MS SQL 2016返回包含表中所有信息的JSON对象数组。由于某种原因,单个查询返回包含我查询的记录集数组,两次。

var sql = require('mssql/msnodesqlv8');

var config = {
  driver: 'msnodesqlv8',
  connectionString: 'Driver={SQL Server Native Client 11.0};Server={localhost};Database={DB};Trusted_Connection={yes};',
  parseJSON: true
}

router.get('/personnel', function (req, res) {
  sql.connect(config, err => {
    if (err) {
      res.status(500).send('Error connecting to database. Error: ' + err.stack);
    }
    else {
      new sql.Request().query('select * from JCE_Personnel for json auto', (err, result) => {
        if(err) {
          res.status(500).send('Error making sql request: ' + err.stack);
        }
        else {
          res.status(200).send(result);
        }
      })
    }
  })
})

我的回答是这样的,省略了隐私数据。

{
    "recordsets": [
        [
            [
                {
                  /* Data */
                },...
            ]
        ]
    ],
    "recordset": [
        [
            {
                /* Data - dup of above */
            },...
        ]
    ],
    "output": {},
    "rowsAffected":[]
}

我认为应该只获得一个包含我表中每一行的JSON对象数组的记录集,但绝对不是这样。

1 个答案:

答案 0 :(得分:0)

您可以使用window.decorView.rootView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS) 来执行JSON反序列化并在后台调用Send来返回结果,而不是反序列化响应然后再调用res.Send(result)

仅返回记录集调用res.json(result)