2015-08-17 22 views
10

Nesnelerin bir dizisinde bilinmeyen özellik adları olan bir JSON Şeması olmasını istiyorum.JSON Şema, bilinmeyen özelliklerin ismiyle

 "meta": { 
     "type": "array", 
     "items": { 
      "type": "object", 
      "properties": { 
      "unknown-attribute-1": { 
       "type": "string" 
      }, 
      "unknown-attribute-2": { 
       "type": "string" 
      }, 
      ... 
      } 
     } 
     } 

herhangi bir fikir lütfen veya aynı ulaşmak için başka bir yol: iyi bir örnek bir web sayfasının meta veri nedir?

+0

Eğer –

+0

meta veri elde etmek istediğiniz şeye daha fazla ayrıntı girin Ben kısıtlamaları uygulamak istediğiniz do nesnelerin –

+0

niteliklerini olası isimlerini bilmiyorum nesnesinin bir dizidir adsız özelliklerine Onların bir tür olmasını ister misiniz yoksa isimlerinin bir örüntüyü takip etmesini ister misiniz? Sahte evet, isimleri herhangi düzeninin – jruizaranguren

cevap

4

Açıkça tanımlanmayan özellikler konusunda kısıtlamalar yapabilirsiniz.

{ 
    "properties" : { 
     "meta" : { 
      "type" : "array", 
      "items" : { 
       "type" : "string" 
      } 
     } 
    } 
} 
:

{ 
    "properties" : { 
     "meta" : { 
      "type" : "array", 
      "items" : { 
       "type" : "object", 
       "additionalProperties" : { 
        "type" : "string" 
       } 
      } 
     } 
    } 
} 
sadece dize dizisi olmasını istediğiniz durumda

, aşağıdaki şemayı kullanabilirsiniz: Aşağıdaki şema özellikleri dize türünde olan nesnelerin bir dizi olmasını "meta" zorlar

+1

@jruizarangen eşleşmesi gerekmez türü "dize" nin olmalarını zorunlu kılmak istediğiniz – cloudfeet

+0

Teşekkürler, haklısınız – jruizaranguren

+0

Teşekkür ederim @jruizaranguren, benim için çalışıyor. Ben şema tanımlar kim aynıyım olsa , ben başka bir yol (yanıtını bakınız) seçilip –

1

@jruizaranguren'in çözümü benim için çalışıyor.

"meta": [ 
    [ 
     { 
     "name": "http-equiv", 
     "value": "Content-Type" 
     }, 
     { 
     "name": "content", 
     "value": "text/html; charset=UTF-8" 
     } 
    ], 
    [ 
     { 
     "name": "name", 
     "value": "author" 
     }, 
     { 
     "name": "content", 
     "value": "Astrid Florence Cassing" 
     } 
    ] 
    ] 
9

kullanımlar: I şemasını da tanımlar olan aynıyım rağmen , i adı değeri bir dizi nesne dönüştürülmüş geçerli JSON bir örnek nesneleri

"meta": { 
     "type": "array", 
     "items": { 
      "type": "array", 
      "items": { 
      "type": "object", 
      "properties": { 
       "name": { 
       "type": "string" 
       }, 
       "value": { 
       "type": "string" 
       } 
      } 
      } 
     } 
     } 

başka bir çözüm seçmiş properties yerine patternProperties. Aşağıdaki örnekte, regex .* desen eşleşmesi, herhangi bir özellik adını kabul eder ve string veya null türlerine yalnızca "additionalProperties": false kullanarak izin veriyorum.

"patternProperties": { 
    "^.*$": { 
     "anyOf": [ 
     {"type": "string"}, 
     {"type": "null"} 
     ] 
    } 
    }, 
    "additionalProperties": false 
İlgili konular