2016-05-02 19 views
1

In meinem Root-JSON-Objekt habe ich viele JSON-Objekte von zwei verschiedenen Typen. Ich frage mich, ob es eine Möglichkeit gibt, ein JSON-Schema zu schreiben, um diese Objekte zu validieren, ohne ein bestimmtes, d. H. Generisches Schema zu erhalten.Ist es möglich, ein generisches JSON-Schema zu schreiben?

Zum Beispiel vorstellen, ich habe folgendes JSON:

"Profile": 
{ 
    "Name": 
    { 
     "Type": "String", 
     "Value": "Mike", 
     "Default": "Sarah", 
     "Description": "This is the name of my person." 
    } 
    "Age": 
    { 
     "Type": "Number", 
     "Value": 27, 
     "Default": 18, 
     "Description": "This is the age of my person." 
    } 
} 

Dieses Profil JSON-Objekt stellt eine Sammlung von verschiedenen Details über eine Person. Beachten Sie, dass ich zwei verschiedene Arten von inneren Objekten, String-Objekten und Anzahl Objekten habe. Wenn ich dies in Betracht ziehe, möchte ich nun ein JSON-Schema erstellen, um jedes der inneren Objekte zu validieren, ohne genau anzugeben, welche Objekte sie sind, z. Es ist mir egal, dass wir "Name" oder "Alter" haben, mir ist wichtig, dass wir richtige String-Objekte und Anzahl Objekte haben.

Bietet JSON Schema mir die Möglichkeit, dies zu tun? Wie schreibe ich ein generisches JSON-Schema basierend auf den Arten von Objekten, die ich habe und nicht spezifische Objektnamen? Hier

ist das, was ich bisher habe:

{ 
"$schema": "http://json-schema.org/draft-04/schema#", 
    "definitions": { 
    "StringObject": { 
     "type": "object", 
     "properties": { 
     "Type": { 
      "type": "string" 
     }, 
     "Value": { 
      "type": "string" 
     }, 
     "Default": { 
      "type": "string" 
     }, 
     "Description": { 
      "type": "string" 
     } 
     }, 
     "required": [ 
     "Type", 
     "Value", 
     "Default", 
     "Description" 
     ] 
    } 
    } 
} 

Antwort

1

Inside my Wurzel JSON-Objekt ich viele JSON-Objekte von zwei unterschiedlichen Typen haben. Ich frage mich, ob es eine Möglichkeit gibt, ein JSON-Schema zu schreiben, um diese Objekte zu validieren, ohne ein bestimmtes, d. H. Generisches Schema zu erhalten.

Union Typen definiert sind, dies zu handhaben:

Ein Wert der „Union“ Typ wird als der Wert von jedem der Elementtypen codiert.

Definition des Unionstyps - Ein Array mit zwei oder mehr Elementen, das eine Vereinigung von Typdefinitionen angibt. Jedes Element im Array kann eine einfache Typdefinition oder ein Schema sein.

{ 
"type": 
    ["string","number"] 
} 

Referenzen

Verwandte Themen