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

Я запустил следующий код в узле 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]
    ]
  }
}

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

Желаемый вывод

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

2 ответа

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

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

передать тип содержимого в заголовок:

Тип контента: приложение / JSON; кодировка = UTF-8;

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

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

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

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

request(GetUserInventory, function (error, response, body) {
  if (error) throw new Error(error);
  obj = JSON.stringify(body);
  console.log(obj);
});
Другие вопросы по тегам