2016-08-13 4 views
4

Frage:Validate json gegen Schema in Javascript

Gibt es eine einfache oder native Javascript Art und Weise einen JSON-Skript für ein JSON Schema zu validieren?

Ich habe viele Bibliotheken auf Github gefunden, aber keine native/einfache Lösung. Hat EcmaScript keine Spezifikation dafür? Und hat keiner der Browser (oder Nodejs) eine Möglichkeit, JSON nativ zu validieren?

Kontext der Frage:

Ich habe ein sehr komplexes Schema, das ich entwickeln. Es soll mit einem Skript zusammenarbeiten, das erfordert, dass die darin übergebenen JSON-Daten dem Schema entsprechen.

Antwort

2

Einfach, nein.

Es gab etwas, das JSON Schema genannt wurde, das ein Internet-Entwurf war, der 2013 auslief. Internet-Entwürfe sind die erste Stufe, zum eines Internet Standard zu produzieren. Weitere Informationen dazu finden Sie unter official site, da es möglicherweise noch aktiv entwickelt wird, obwohl es (meines Wissens) nicht weit verbreitet ist.

Ein Beispiel für das Schema:

{ 
    "$schema": "http://json-schema.org/schema#", 
    "title": "Product", 
    "type": "object", 
    "required": ["id", "name", "price"], 
    "properties": { 
    "id": { 
     "type": "number", 
     "description": "Product identifier" 
    }, 
    "name": { 
     "type": "string", 
     "description": "Name of the product" 
    }, 
    "price": { 
     "type": "number", 
     "minimum": 0 
    }, 
    "tags": { 
     "type": "array", 
     "items": { 
     "type": "string" 
     } 
    }, 
    "stock": { 
     "type": "object", 
     "properties": { 
     "warehouse": { 
      "type": "number" 
     }, 
     "retail": { 
      "type": "number" 
     } 
     } 
    } 
    } 
} 

wird dieses Beispiel validieren JSON:

{ 
    "id": 1, 
    "name": "Foo", 
    "price": 123, 
    "tags": [ 
    "Bar", 
    "Eek" 
    ], 
    "stock": { 
    "warehouse": 300, 
    "retail": 20 
    } 
} 

EDIT Da sie alle (mehr oder weniger) das gleiche tun und haben sehr ähnlichen Syntaxen Leistung sollte die größte Sorge sein. Einen Vergleich der Leistung des JSON-Validators finden Sie unter here - der Gewinner ist ajv, was ich persönlich aus diesem Grund verwende.

+0

Also, wenn ich JSON validieren wollte, was soll ich tun? –

+0

Verwenden Sie eine externe Bibliothek. Ich werde mit einigen Vorschlägen aktualisieren. –

+0

Danke, mein größtes Problem war, dass ich mich auf Bibliotheken verließ, die nicht zuverlässig sein könnten –