Javascript 说一个对象是一个字符串,不允许我访问它的键值(请求承诺)

Javascript says an object is a string and doesn't allow me to access it's key values (request promise)

似乎无论我如何处理结果,即使它作为一个对象返回,因为当我 console.log 它打印 [object object] 但是当我检查它的 typeof 它总是一个字符串,无论我做什么,我都试图立即做 JSON.parse 它会中断,因为它已经是一个对象,只是由于某种原因没有被识别为一个对象.. 如果我进行字符串化然后解析它仍然是一个字符串。

这是我得到的: { "PPR": "Some text", "DDA": "another text" }

 var rp = require('request-promise');

 function myff(input, callback) {

 const URL = "https://test.com";


 try{
    var options = {
        method: 'GET',
        uri: URL,
        headers:{
          'Content-Type': 'application/json',
          'key': 'xxff'
        },
    };

    rp(options)
        .then(function (parsedBody) {
            var a = parsedBody;
            console.log("ParsedBody: " +  a);
            console.log("ParsedBody type : " + typeof a);

               var stringy = JSON.stringify(parsedBody);
               var parsy = JSON.parse(stringy);

               console.log("type stringy: " + typeof stringy);
               console.log("type parsy: " + typeof parsy);


            callback(null, JSON.parse(parsedBody));

        })
        .catch(function (err) {
            console.log(err)
        });

 }catch (e){
     console.log(" erros:" + e);
 }
 }

您只需要解析返回的 JSON 响应。在 console 语句中使用逗号运算符,因为 (+) 会导致连接,您将无法看到正确的结果。

var rp = require('request-promise');

 function myff(input, callback) {

 const URL = "https://test.com";


 try{
    var options = {
        method: 'GET',
        uri: URL,
        headers:{
          'Content-Type': 'application/json',
          'key': 'xxff'
        },
    };

    rp(options)
        .then(function (parsedBody) {
            var a = JSON.parse(parsedBody);
            console.log("ParsedBody: ",  a);
            console.log("ParsedBody type : ", typeof a);

            callback(null, a);

        })
        .catch(function (err) {
            console.log(err)
        });

 }catch (e){
     console.log(" erros:" + e);
 }
 }

希望对你有所帮助