首页 > 解决方案 > 访问 Json 上的特定数据 - NodeJS

问题描述

我正在尝试从 json 访问数据,但我不能......我已经尝试了一些我在互联网上找到的解释,但我想我的代码有问题。

我正在使用以下代码从 sql server 数据库中获取数据:

async function getLogin1(Operador, Senha) { 
    try {
        let pool = await sql.connect(config);
        let getLogin1 = await pool.request()
            .input('input_parameter', sql.VarChar, Operador)
            .input('input_parameter1', sql.VarChar, Senha)
            .query("SELECT Codigo, Operador, Senha FROM Usuario where Operador = @input_parameter and Senha = @input_parameter1");
        return getLogin1.recordsets;
    }
    catch (error) {
        console.log(error);

    }
}

所以我在这里得到记录集并放入一个json:

router.route("/Login1").get((request, response) => {
    console.log(request.body.operador);
    console.log(request.body.senha);
    Operador = request.body.operador;
    Senha = request.body.senha;

    dboperations.getLogin1(Operador, Senha).then(result => {
        console.log(Operador, Senha);
        response.json(result);
        var json = JSON.stringify(result);
        console.log(json);
    })

})

在控制台上显示 json:

[[{"Codigo":1,"Operador":"Username","Senha":"123456"}]]

我想获取单个数据(codigo、operador 和 senha)以分别放入一个单独的字符串,但我无法访问数据。例如,当我尝试 json[0] 时,我得到了所有的 json(因为我的 json 包含我猜第一个位置的所有信息),当我尝试 json.Codigo(例如)时,我得到一个“未定义”错误。

我做错了什么,最好的解决方法是什么?

很抱歉知识不足,这是我的第一个 api。

(是的,这是一个登录代码,它不是处理用户数据的最佳方式,但它是一个供实习生使用的非常小的系统)

标签: javascriptnode.js

解决方案


您的 JSON“结果”是:

[[{"Codigo":1,"Operador":"MASTER","Senha":"TERA0205"}]]

所以它是一个数组数组,其中包含一个对象,键为 Codigo、Operador、Senha。

要获得该对象的 Codigo 的值,您可能需要像这样访问它

var CodigoVal = result[0][0].Codigo; // 1
var OperadorVal = result[0][0].Operador; // "MASTER"

推荐阅读