Я хотел бы использовать методы expand
и compact
библиотеки jsonld.js для перевода данных из разных источников в общий формат обработки. Если я возьму исходный JSON-документ, добавьте к нему @context
, а затем передайте его через метод expand
, который я могу получить в общем формате, который мне нужен.Определить JSON-LD @context для объединения/разделения значений?
Вариант использования, в котором я не смог найти решение, - это когда нужно объединить несколько значений. Например, schema.org определяет PostalAddress
с одним полем для streetAddress
, но многие системы хранят адрес улицы как отдельные значения (номер улицы, название улицы, направление улицы ...). Чтобы перевести входящие данные в формат schema.org, мне нужен способ указать в моем @context
, что несколько полей составляют streetAddress
в правильном порядке.
Уплотненный Документ
{
"@context": {
"displaName": "http://schema.org/name",
"website": "http://schema.org/homepage",
"icon": "http://schema.org/image",
"streetNumber": "http://schema.org/streetAddress"
},
"displaName": "John Doe",
"website": "http://example.com/",
"icon": "http://example.com/images/test.png",
"streetNumber": "123",
"streetName": "Main St",
"streetDirection": "South"
}
Expanded Документ
{
"http://schema.org/name":[
{
"@value":"John Doe"
}
],
"http://schema.org/image":[
{
"@value":"http://example.com/images/test.png"
}
],
"http://schema.org/streetAddress":[
{
"@value":"123"
}
],
"http://schema.org/homepage":[
{
"@value":"http://example.com/"
}
]
}
Я рассмотрел все JSON-LD спецификации, которые я мог бы найти и не удалось найти что-нибудь что указывает способ разделения или конкатенации значений с использованием @context
.
Кто-нибудь знает способ сопоставить несколько значений в одно свойство контекста в правильном порядке и, возможно, добавить пробелы между значениями. Мне также нужно найти решение для обратного сценария, где мне нужно разбить одно поле на несколько значений в правильном порядке.
Примечание. Даже если я сопоставляю все три свойства с streetAddress
, значения будут включены в массив, но нет гарантии, что они будут в правильном порядке.
благодарит за ответ. К сожалению, мне нужно сохранить исходный документ в такт. Цель вопроса - найти способ обработки перевода с использованием контекста, предполагая, что я не тот, который предоставляет входные данные. –
Хорошо, я вижу, извините за недоразумение. Я мог бы знать по-другому, позвольте мне проверить. Даже если поля должны быть оставлены нетронутыми, вы имеете полный контроль над '@ context'? – Val
Да. Я пытаюсь создать способ разрешить пользователям отображать выходы API в общий формат.У меня уже есть рабочий интерфейс, позволяющий сопоставлять один к одному, но не смог понять из документации json-ld-процессора, как манипулировать данными в исходном документе, помимо сопоставления ключей с их соответствующим лексиконом. –