Javascript говорит, что объект является строкой и не позволяет мне получить доступ к его значениям ключа (запрос обещания) - PullRequest
0 голосов
/ 16 апреля 2020

кажется, что неважно, что я делаю с результатом, даже когда он возвращается как объект, потому что когда я его console.log, он печатает [объектный объект], однако, когда я проверяю его тип, он всегда является строкой, независимо от того, что я делаю, я пытаюсь сделать JSON .parse сразу, как только он сломается, поскольку это уже объект, просто по какой-то причине не идентифицированный как единица .. если я выполняю stringify, а затем анализирую, он все равно остается строкой.

Это то, что я получаю обратно: {"PPR": "Некоторый текст", "DDA": "другой текст"}

 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);
 }
 }

1 Ответ

1 голос
/ 16 апреля 2020

Вам просто нужно проанализировать возвращенный 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);
 }
 }

Надеюсь, это поможет вам.

...