JSON - Ошибка массива для многострочного вывода строки | nodejs | Узел-запрос - PullRequest
0 голосов
/ 12 сентября 2018

Я запустил следующий код в узле JS

const request = require("request");

const GetUserInventory = {
  method: 'GET',
  url: 'https://api-trade.opskins.com/ITrade/GetUserInventory/v1/',
  qs: { uid: '3192035', app_id: '1' },
  json: true
};

request(GetUserInventory, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

Вывод, который я получил, следующий. Здесь значения строк не отображаются. То есть они отображаются как [объект]. Как получить желаемый результат, как указано на рисунке?

{
  status: 1,
  time: 1536729167,
  current_page: 1,
  total_pages: 1,
  response: {
    items: [
      [Object]
    ],
    total: '1',
    items_in_active_offers: null,
    user_data: {
      username: 'Mowrish gamdom.com',
      avatar: 'https://steamcdn-a.opskins.media/steamcommunity/public/images/avatars/d7/d7cf2c088d4398bed904ae540b36211e1af202f2.jpg'
    },
    sort_parameters: [
      [Object],
      [Object],
      [Object],
      [Object],
      [Object],
      [Object]
    ]
  }
}

Вывод, который я ожидаю, следующий. Как получить этот вывод?

Desired output

Я пытался JSON.parse из body до console.log () вместо значения json: true в GetUserInventory. Это не сработало. И еще, я попробовал JSON.stringify из body. То же самое произошло и с ним

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

у вас проблема с телом ответа.поэтому, возможно, вы не установили тип контента при вызове API.

Заголовок просто указывает, во что закодирован контент. Не обязательно можно определить тип контента из самого контента,то есть вы не можете просто смотреть на контент и знать, что с ним делать.Для этого и нужны HTTP-заголовки, они сообщают получателю, с каким типом контента они (предположительно) имеют дело.

передают тип контента в заголовок:

Тип контента: приложение/ JSON;charset = utf-8;

, поэтому ваш ответ будет в формате JSON, к которому вы можете получить доступ.

или вы можете попробовать это, это также будет работать.

obj = JSON.parse (JSON.stringify (body));

0 голосов
/ 12 сентября 2018

Попробуйте выполнить следующее, если хотите, чтобы вывод был таким же, как на скриншоте, который вы опубликовали

request(GetUserInventory, function (error, response, body) {
  if (error) throw new Error(error);
  obj = JSON.stringify(body);
  console.log(obj);
});
...