Ich würde gerne die expand
und compact
Methoden der jsonld.js Bibliothek verwenden, um Daten aus verschiedenen Quellen in ein gemeinsames Format für die Verarbeitung zu übersetzen. Wenn ich ein Quell-JSON-Dokument nehme, füge ein @context
hinzu und übergebe es dann über die expand
Methode, die ich in der Lage bin, das übliche Format zu bekommen, das ich brauche.Definieren Sie JSON-LD @context, um Werte zu verbinden/zu teilen?
Der Anwendungsfall, für den ich keine Lösung finden konnte, ist, wenn mehrere Werte zusammengeführt werden müssen. Zum Beispiel definiert schema.org ein PostalAddress
mit einem einzelnen Feld für die streetAddress
, aber viele Systeme speichern die Straßenadresse als separate Werte (Straßennummer, Straßenname, Straßenrichtung ...). Um die eingehenden Daten in das Schema.org-Format zu übersetzen, brauche ich eine Möglichkeit, in meiner @context
, dass mehrere Felder bilden die streetAddress
, in der richtigen Reihenfolge.
Verdichtete Dokument
{
"@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 Dokument
{
"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/"
}
]
}
Ich habe alle der JSON-LD-Spezifikationen überprüft, die ich finden konnte, und nicht in der Lage, etwas zu finden Dies zeigt eine Möglichkeit zum Teilen oder Verketten von Werten mit dem @context
.
Kennt jemand eine Möglichkeit, mehrere Werte in einer Kontexteigenschaft in der richtigen Reihenfolge zuzuordnen und möglicherweise Leerzeichen zwischen den Werten hinzuzufügen. Ich muss auch eine Lösung für das umgekehrte Szenario finden, wo ich ein Feld in mehrere Werte in der richtigen Reihenfolge aufteilen muss.
Hinweis: Auch wenn ich alle drei Eigenschaften auf streetAddress
abbilde, werden die Werte alle im Array enthalten, aber es gibt keine Garantie, dass sie in der richtigen Reihenfolge angezeigt werden.
danke für die antwort. Leider muss ich das Originaldokument in Takt halten. Der Zweck der Frage ist, einen Weg zu finden, die Übersetzung mit dem Kontext zu handhaben, vorausgesetzt, ich bin nicht derjenige, der die Eingabedaten liefert. –
Ok, verstehe ich, Entschuldigung für das Missverständnis. Ich weiß es vielleicht anders, lass mich nachsehen. Obwohl die Felder intakt bleiben müssen, haben Sie die volle Kontrolle über den '@ Kontext'? – Val
Ja. Ich versuche, eine Möglichkeit zu schaffen, Benutzern das Zuordnen von API-Ausgaben in ein gemeinsames Format zu ermöglichen.Ich verfüge bereits über eine funktionierende Benutzeroberfläche, um ein Eins-zu-Eins-Mapping zu ermöglichen, konnte aber aus der Dokumentation des json-ld-Prozessors nicht herauslesen, wie man Daten innerhalb des Quelldokuments manipulieren kann. –