架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 22|回复: 1

[技巧] .NET/C# 使用 JsonSchema.Net 校验 json 字符串结构

[复制链接]
发表于 3 小时前 | 显示全部楼层 |阅读模式
需求:在 AI 大模型化时代的浪潮下,各行各业都在接入 AI 人工智能,让 AI 帮助我们分析数据,有些是通过编程语言程序化调用,我们想让 AI 大模型输出 JSON 结构化的数据,如何验证 AI 模型输出的 json 字符串是否符合我们的面向对象定义的类型呢?

JsonSchema.Net

有时您可能需要验证 JSON 对象是否格式正确(具有正确的键和值类型),或者您可能希望为数据添加注释。这时,JSON Schema 就派上用场了。与 XML 的 XML Schema 类似,JSON Schema 为 JSON 数据定义了一种模式。JSON Schema 验证器可以验证给定的 JSON 对象是否符合 JSON Schema 定义的要求,并向应用程序提供有关数据的附加信息。此评估可以作为反序列化之前的预处理步骤,非常有用。

源码:超链接登录可见。
文档:超链接登录可见。

目前已知有六个版本的 JSON Schema 规范在使用:

  • Draft 3
  • Draft 4
  • Draft 6
  • Draft 7
  • Draft 2019-09
  • Draft 2020-12

JSON Schema 团队建议使用草案 7 或 2020-12。JsonSchema.Net支持草案 6 及更高版本。

基础教程

我们定义一个人员的对象,然后来生成 Schema,代码如下:
输出如下:
{
  "type": [
    "object",
    "null"
  ],
  "properties": {
    "Name": {
      "type": [
        "string",
        "null"
      ]
    },
    "Email": {
      "type": [
        "string",
        "null"
      ]
    },
    "Age": {
      "type": "integer"
    },
    "Address": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "Location": {
            "type": [
              "string",
              "null"
            ]
          },
          "ZipCode": {
            "type": "integer"
          }
        },
        "required": [
          "Location",
          "ZipCode"
        ]
      }
    }
  },
  "required": [
    "Name",
    "Email",
    "Age",
    "Address"
  ]
}
使用 JsonSchema 验证 json 字符串是否符合对象结构,代码如下:
如下图:

QQ截图20260801090655.jpg

使用构建器模式,代码如下:

(完)




上一篇:LINQPad 9 开启 Web 服务(ASP.NET Core)教程
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 3 小时前 | 显示全部楼层
关于 System.Text.Json 操作 JSON 的一些技巧
https://www.itsvse.com/thread-10881-1-1.html
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-8-1 12:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表