Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JSON-LD framing single object arrays

Tags:

arrays

json-ld

Is there a way to force single objects to an array? It is really annoying to test object type every time.

I tried this context, but it doesnt work. There is also example in JSON-LD Playground. With this context resources are turned into single objects and not array containing one object, as you would expect.

{
  "@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": []
}

Result:

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

And what it should be:

"foaf:member": [{ "@id": ... }]
like image 905
amiika Avatar asked Aug 06 '15 07:08

amiika


1 Answers

Compliant JSON-LD processors allow you to set a couple of options when processing JSON-LD: http://www.w3.org/TR/json-ld-api/#the-jsonldoptions-type

Just set the compactArrays flag to false.

like image 182
Markus Lanthaler Avatar answered Nov 15 '22 07:11

Markus Lanthaler