You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSON Schema引用解析错误解决及PowerShell校验JSON方法问询

引用解析报错解决方法

报错的根本原因是你使用的在线JSON Schema校验工具无法解析Schema中配置的相对路径外部引用,工具运行的虚拟服务环境中不存在process/process.schema.json、data/data.schema.json对应的文件资源。可以按照以下方案解决:

  • 方案1:临时在线校验场景,直接内嵌外部Schema内容。将process.schema.json、data.schema.json的完整Schema内容直接替换当前Schema中对应的$ref字段部分,无需保留外部引用结构即可直接在校验工具中完成校验。
  • 方案2:保留外部引用结构的场景,将所有Schema文件部署在同一可公网访问的HTTP服务路径下,将$ref的取值修改为文件的完整HTTP访问路径,在线工具即可正常拉取到引用的Schema完成解析。
  • 方案3:使用本地校验工具进行校验,只要保证本地的Schema目录结构和你写的相对路径匹配,即可正常解析引用,无需修改Schema内容。同时注意检查路径的大小写,多数Schema校验工具对路径大小写敏感。
PowerShell实现JSON与JSON Schema校验的方法

PowerShell没有内置JSON Schema校验能力,需要借助Newtonsoft.Json.Schema(Json.NET Schema)库完成校验,操作步骤如下:

  1. 先安装依赖库,可以通过NuGet安装Newtonsoft.Json.Schema包,也可以直接下载对应版本的Newtonsoft.Json.dll和Newtonsoft.Json.Schema.dll文件存放到本地。
  2. 使用以下脚本完成校验,注意替换对应的文件路径:
# 加载依赖程序集,替换为你本地的dll实际存储路径
Add-Type -Path "C:\libs\Newtonsoft.Json.dll"
Add-Type -Path "C:\libs\Newtonsoft.Json.Schema.dll"

# 加载JSON Schema文件
$schemaPath = "C:\schemas\your_main_schema.json"
$schemaContent = Get-Content -Path $schemaPath -Raw
$schema = [Newtonsoft.Json.Schema.JSchema]::Parse($schemaContent)

# 加载待校验的JSON数据文件
$jsonDataPath = "C:\data\to_validate.json"
$jsonContent = Get-Content -Path $jsonDataPath -Raw
$jsonObj = [Newtonsoft.Json.Linq.JObject]::Parse($jsonContent)

# 执行校验
$validationErrors = $null
$isValid = $jsonObj.IsValid($schema, [ref]$validationErrors)

# 输出结果
if ($isValid) {
    Write-Host "JSON数据校验通过" -ForegroundColor Green
} else {
    Write-Host "JSON数据校验失败,错误详情:" -ForegroundColor Red
    $validationErrors | ForEach-Object {
        Write-Host "错误路径:$($_.Path),错误描述:$($_.Message)"
    }
}

如果你的Schema包含相对路径的外部引用,需要在解析Schema时配置根路径:

# 配置Schema解析设置,指定外部引用的根目录
$settings = New-Object Newtonsoft.Json.Schema.JSchemaReaderSettings
$settings.BaseUri = New-Object System.Uri("C:\schemas\")
$schema = [Newtonsoft.Json.Schema.JSchema]::Parse($schemaContent, $settings)

内容的提问来源于stack exchange,提问作者Prateek Porwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:09:03