У меня есть 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, независимо от структуры?