2015-08-06 35 views
5

Czy istnieje sposób wymuszania pojedynczych obiektów na tablicy? Naprawdę denerwujące jest testowanie typu obiektu za każdym razem.Układanie pojedynczych obiektów JSON-LD

Próbowałem tego kontekstu, ale to nie działa. Istnieje również example in JSON-LD Playground. W tym kontekście zasoby są przekształcane w pojedyncze obiekty, a nie w tablicę zawierającą jeden obiekt, jak można by się spodziewać.

{ 
    "@context": { 
    "member": { 
     "@id": "http://xmlns.com/foaf/0.1/member", 
     "@container": "@list" 
    }, 
    "ex": "http://example.org/ex#", 
    "foaf": "http://xmlns.com/foaf/0.1/", 
    "owl": "http://www.w3.org/2002/07/owl#", 
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", 
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#", 
    "xsd": "http://www.w3.org/2001/XMLSchema#", 
    "frapo": "http://purl.org/cerif/frapo/" 
    }, 
    "@type": "foaf:Organisation", 
    "member": [] 
} 

Wynik:

... { 
     "@id": "ex:Organization_1", 
     "@type": "foaf:Organisation", 
     "foaf:member": { 
     "@id": "ex:Person_1", 
     "@type": "foaf:Person", 
     "foaf:name": "Bill" 
     } 
    } ... 

A co powinno być:

"foaf:member": [{ "@id": ... }] 

Odpowiedz

0

Użyj "@container": "@set" zamiast @list.

@list oznacza zamówienie - a @set nie. JFYI, możliwe jest, że twoje "członka" nie jest wybierane (przez algorytm) podczas kompaktowania danych, ponieważ dane wejściowe nie pasują do @list. Jeśli Twoje dane nie pasują do terminu w twoim kontekście, zostanie użyty alternatywny termin, który pasuje (lub pełny adres URL). W skrócie, użyj zamiast tego @set.

+0

Ma to sens! Dzięki! – amiika