Files
Newtonsoft.Json/Src/Newtonsoft.Json.Tests/Documentation/Examples/Schema/RefJsonSchemaResolver.cs
T
2013-01-24 17:33:16 +13:00

56 lines
1.3 KiB
C#

using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Schema;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Newtonsoft.Json.Tests.Documentation.Examples.Schema
{
public class RefJsonSchemaResolver
{
public void Example()
{
string schemaJson;
JsonSchemaResolver resolver = new JsonSchemaResolver();
schemaJson = @"{
""id"": ""person"",
""type"": ""object"",
""properties"": {
""name"": {""type"":""string""},
""age"": {""type"":""integer""}
}
}";
JsonSchema personSchema = JsonSchema.Parse(schemaJson, resolver);
schemaJson = @"{
""id"": ""employee"",
""type"": ""object"",
""extends"": {""$ref"":""person""},
""properties"": {
""salary"": {""type"":""number""},
""jobTitle"": {""type"":""string""}
}
}";
JsonSchema employeeSchema = JsonSchema.Parse(schemaJson, resolver);
string json = @"{
""name"": ""James"",
""age"": 29,
""salary"": 9000.01,
""jobTitle"": ""Junior Vice President""
}";
JObject employee = JObject.Parse(json);
bool valid = employee.IsValid(employeeSchema);
Console.WriteLine(valid);
// true
}
}
}