0

我正在尝试使用 Zomato api 来提取一些数据。但是,我被困在评论中。我似乎无法获得评论,因为我最终将 [Object Object] 作为文本的值。如果有人知道如何让评论显示为文本,请告诉我。

在此处输入图像描述

链接到实际代码:https ://jsfiddle.net/fxrzm/nkLrh8fg/4/

const {thumb:img,name,location:{address},all_reviews:{reviews},user_rating:{aggregate_rating},cuisines,average_cost_for_two:cost} = restaurant.restaurant;

// 如您所见,我能够提取除评论之外的 const 中的其他数据。

4

2 回答 2

1

评论很可能是 json 对象,您需要从评论中提取相关位以显示。请参阅以下示例:

const reviews = [
  { html: '<p>great</p>' },
  { html: '<p>awesome</p>' },
  { html: '<p>meh</p>' },
];

const div1 = document.getElementById('straight');
div1.innerHTML = `${reviews}`;


const div2 = document.getElementById('mapped');
div2.innerHTML = `${reviews.map(r => r.html).join('')}`;
<div id="straight"></div>
<div id="mapped"></div>

于 2019-09-13T08:06:15.757 回答
0

在 Javascript 中,数组是对象。评论也可能是一个常规的 {} 对象。[Object Object] 是我对控制台日志的期望,因为控制台日志不会遍历对象并显示它们的所有值(如果它们像这样嵌套)。您应该控制台登录 restaurant.restaurant.reviews 并获取结构。这样你就会对结构有更多的了解。我总是尝试更深一层,直到结构变得有意义。

好消息是您可能拥有想要的数据,只是看不到。

更新:我重新阅读了你的问题。如果您使用的是 es6,您可能想尝试使用扩展运算符来复制键和值,而不是在新对象中嵌套数组或对象。all_reviews:{...reviews}.

于 2019-09-12T19:52:21.393 回答