Кадр JSON-LD: принудительное дублирование значений избыточных свойств - PullRequest
0 голосов
/ 22 сентября 2018

Возможно ли принудительное дублирование значений избыточных свойств, таких как author и creator?

Цель состоит в том, чтобы сократить последующий дополнительный синтаксический анализ и получить простой в обращении объект JSON, независимо от дублированных значений.

Пример:

{
  "@type": "NewsArticle",
  "articleBody": "Article Body",
  "author": {
    "id": "_:b1"
  },
  "creator": {
    "id": "_:b1",
    "type": "Person",
    "name": "Creator Name",
    "url": "https://example.org/author/creator-name/"
  },
  "description": "Description.",
  "headline": "Headline"
}

Кадр:

{
  "@context": "https://schema.org/docs/jsonldcontext.json",
  "@vocab": "https://schema.org",
  "@type": ["Article", "NewsArticle", "TechArticle", "ScholarlyArticle"],
  "author": {
    "@type": "http://schema.org/Person",
    "@embed": "true"
  }
}

Ожидаемый результат:

{
    "@type": "NewsArticle",
    "articleBody": "Article Body",
    "author": {
      "id": "_:b1",
      "type": "Person",
      "name": "Creator Name",
      "url": "https://example.org/author/creator-name/"
    },
    "creator": {
      "id": "_:b1",
      "type": "Person",
      "name": "Creator Name",
      "url": "https://example.org/author/creator-name/"
    },
    "description": "Description.",
    "headline": "Headline"
  }

1 Ответ

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

Чтобы повторить узел, вы хотите использовать "@embed": "@always".Попробуйте это обновление для вашего примера на JSON-LD Playground .

Ввод:

{
  "@context": "https://schema.org/docs/jsonldcontext.json",
  "@type": "NewsArticle",
  "articleBody": "Article Body",
  "author": {
    "id": "_:b1"
  },
  "creator": {
    "id": "_:b1",
    "type": "Person",
    "name": "Creator Name",
    "url": "https://example.org/author/creator-name/"
  },
  "description": "Description.",
  "headline": "Headline"
}

Кадр:

{
  "@context": "https://schema.org/docs/jsonldcontext.json",
  "@type": ["Article", "NewsArticle", "TechArticle", "ScholarlyArticle"],
  "author": {
    "@embed": "@always"
  },
  "creator": {
    "@embed": "@always"
  }
}

Результат:

{
  "@context": "https://schema.org/docs/jsonldcontext.json",
  "@graph": [
    {
      "type": "NewsArticle",
      "articleBody": "Article Body",
      "author": {
        "id": "_:b1",
        "type": "Person",
        "name": "Creator Name",
        "url": "https://example.org/author/creator-name/"
      },
      "creator": {
        "id": "_:b1",
        "type": "Person",
        "name": "Creator Name",
        "url": "https://example.org/author/creator-name/"
      },
      "description": "Description.",
      "headline": "Headline"
    }
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...