在現代軟體開發中,JSON(JavaScript Object Notation)已成為數據交換的通用格式。為了確保接收到的 JSON 數據符合預期格式,我們可以使用 JSON Schema 進行驗證。在.NET 環境中,我們可以利用一些庫來生成和使用 JSON Schema 驗證器。
本文將介紹如何使用.NET 程式碼生成 JSON Schema 驗證器,並提供一個簡單的範例來演示驗證過程。
一、安裝必要的 NuGet 包
在.NET 計畫中,我們可以使用
NJsonSchema
這個 NuGet 包來生成和處理 JSON Schema。你可以透過 NuGet 包管理器或命令列工具來安裝它:
Install-Package NJsonSchema
或者使用 .NET CLI:
dotnet add package NJsonSchema
二、生成 JSON Schema
首先,我們需要定義一個.NET 類,該類將作為我們生成 JSON Schema 的基礎。例如,我們定義一個簡單的
Person
類:
public classPerson
{
publicstring FirstName { get; set; }
publicstring LastName { get; set; }
publicint Age { get; set; }
}
接下來,我們可以使用
NJsonSchema
庫來為這個類生成 JSON Schema:
using NJsonSchema;
using NJsonSchema.Generation;
using System;
classProgram
{
staticvoidMain(string[] args)
{
var generator = new JsonSchemaGeneratorSettings();
var schema = JsonSchema.FromType<Person>(generator);
// 將生成的 JSON Schema 轉換為字串以便檢視或保存
var schemaJson = schema.ToJson(SchemaType.JsonSchemaDraft7);
Console.WriteLine(schemaJson);
}
}
這段程式碼會輸出一個描述
Person
類的 JSON Schema。
三、使用 JSON Schema 進行驗證
一旦我們有了 JSON Schema,我們就可以使用它來驗證 JSON 數據是否符合預期格式。以下是一個簡單的驗證範例:
using NJsonSchema;
using NJsonSchema.Validation;
using System;
using System.Text;
using Newtonsoft.Json.Linq;
classProgram
{
staticvoidMain(string[] args)
{
// 載入之前生成的 JSON Schema(或從其他地方獲取)
var schemaJson = "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"FirstName\":{\"type\":\"string\"},\"LastName\":{\"type\":\"string\"},\"Age\":{\"type\":\"integer\"}},\"required\":[\"FirstName\",\"LastName\",\"Age\"]}";
var schema = JsonSchema.FromJson(schemaJson);
// 要驗證的 JSON 數據
var json = "{\"FirstName\":\"John\",\"LastName\":\"Doe\",\"Age\":30}";
var jsonData = JToken.Parse(json);
// 進行驗證
var validator = new JsonSchemaValidator();
var validationErrors = validator.Validate(schema, jsonData);
// 輸出驗證結果
if (validationErrors.Count == 0)
{
Console.WriteLine("JSON 數據驗證透過!");
}
else
{
Console.WriteLine("JSON 數據驗證失敗!");
foreach (var error in validationErrors)
{
Console.WriteLine($"錯誤: {error.Path} - {error.Message}");
}
}
}
}
在這個範例中,我們首先載入了之前生成的 JSON Schema(在實際套用中,你可能需要從檔、資料庫或其他儲存中載入它)。然後,我們定義了一個要驗證的 JSON 字串,並使用
NJsonSchema
的驗證器對其進行驗證。最後,我們輸出了驗證結果。
透過這兩個簡單的範例,你可以看到在.NET 中使用
NJsonSchema
庫生成和使用 JSON Schema 驗證器是多麽容易。這對於確保你的應用程式接收到的 JSON 數據符合預期格式非常有用。