Доступ к данным JSON-LD по короткому или полному имени свойства - PullRequest
1 голос
/ 24 октября 2019

У меня есть JSON-LD, который имеет контекст и словарь, и переопределяет свойство schema.org, например, так:

{
  "@context": [
    "http://schema.org/",
    {
      "@vocab": "http://ld.schema.example.com/sample#"
    }
  ],
  "http://ld.schema.example.com/sample#startDate": "2000-01-01T00:00:00",
  "Action": { "description": "sample"}
}

Мне нужно прочитать JavaScript startDate. Достаточно просто:

const startDate = jsonData["http://ld.schema.example.com/sample#startDate"];

Проблема начинается, когда я получаю это вместо:

{
  "@context": {
    "@vocab": "http://ld.schema.example.com/sample#"
  },
  "@graph": [
    {
      "startDate": "2000-01-01T00:00:00"
    }
  ]
}

Теперь мне нужно получить к нему доступ с помощью:

const startDate = jsonData.startDate

Япытаюсь создать повторно используемые компоненты React, которые отображают разделы данных, которые я получаю. Я пытаюсь создать словарь многократного использования, но также использую общеизвестные общедоступные словари, такие как schema.org, и я не могу гарантировать, что мы не будем использовать существующее имя свойства, чтобы означать что-то совсем другое. И я не могу гарантировать, что данные, которые я получаю, всегда будут поступать в рамке с включенным schema.org.

Если не переформатировать данные, когда я получу их, добавить недостающие @contexts (или работая с расширенной формой), есть ли решение, позволяющее мне получить доступ к этому свойству без неуклюжего переключателя, троичного оператора или оператора if, независимо от структуры?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...