проблемы с чтением результата объекта результатов поиска клиентов Google в javascript - PullRequest
1 голос
/ 26 мая 2020

Кто-нибудь знает синтаксис, который следует использовать при чтении объекта результатов пользовательского поиска Google?

Вот обозначение JSDo c объекта результатов из https://developers.google.com/custom-search/docs/element:

{
  content: string,
  contentNoFormatting: string,
  contextUrl: string, // For image search results only
  fileFormat: string,
  image: { // For image search reseults only
    height: number,
    url: string,
    width: number,
  },
  perResultLabels: !Array<{
    anchor: string,
    label: string,
    labelWithOp: string,
  }>,
  richSnippet: !Array<!Object>, // For web search results only
  thumbnailImage: {
    height: number,
    url: string,
    width: number,
  },
  title: string,
  titleNoFormatting: string,
  url: string,
  visibleUrl: string,
} 

Мне нужно найти «url» (thumbnailimage.url), но я не уверен в синтаксисе, который нужно использовать для ссылки на него.

вот где мне нужно его использовать. См. Комментарий ниже

here is where I need to use it.  See comment below

const makeResultParts = (result) => {
const anchor = document.createElement('a');
anchor.href = result['thumbnailImage'] //  <<---this needs to be the thumbnailImage.url but that syntax does not work
anchor.target = '_blank';
anchor.classList.add('gs_title');
anchor.appendChild(document.createTextNode(result['visibleUrl']));
const span = document.createElement('span');
span.innerHTML = ' ' + result['title'];
return [anchor, span];
};

1 Ответ

1 голос
/ 26 мая 2020

Предполагая, что result['thumbnailImage'] всегда существует (в соответствии с документами, которые должны быть для поиска изображений), это должно сработать для вас:

const makeResultParts = (result) => {
  const anchor = document.createElement('a');
  anchor.href = result['thumbnailImage']['url'] //  <<--- Access the url attribute of the thumbnailImage entry
  anchor.target = '_blank';
  anchor.classList.add('gs_title');
  anchor.appendChild(document.createTextNode(result['visibleUrl']));
  const span = document.createElement('span');
  span.innerHTML = ' ' + result['title'];
  return [anchor, span];
};
...