56 lines
1.3 KiB
C#
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
|
|
}
|
|
}
|
|
}
|