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

如何用JSONSchema适配键动态生成、值均为字符串的JSON元数据?

如何用JSON Schema处理含动态键的meta对象?

刚好之前处理过类似的场景,这种动态生成字段的需求,JSON Schema的additionalProperties关键字就是专门干这个的!

核心思路是:先定义好你能确定的固定字段(比如filename),然后对meta这个动态字段,明确它是一个对象,并且允许任意数量的字符串键,对应的值必须是字符串类型。

给你一个完整的Schema示例:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "required": ["filename", "meta"],
  "properties": {
    "filename": {
      "type": "string"
    },
    "meta": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  }
}

我给你拆解一下关键部分:

  • required数组:确保filename和meta这两个字段必须存在,如果你允许meta可选,可以把它从数组里去掉。
  • meta的定义:type: object指定它是一个对象,而additionalProperties: { type: "string" }表示这个对象里可以有任意名称的键,且所有键对应的值都必须是字符串——完美匹配你描述的动态元数据场景。

举个验证例子:你提供的示例JSON

{ 
  "filename": "hello.txt", 
  "meta": { 
    "some file property": "any string", 
    "some other file property": "another string" 
  } 
}

会被这个Schema完全通过验证;但如果meta里出现比如"size": 123(数值类型),就会被判定为无效,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:05:27