能否通过JSON Schema描述嵌套在JSON字符串属性中的JSON?
可以,你的实现思路是正确的
问题回顾
我有如下JSON对象:
{ "name": "John", "details": "{\"age\": 30, \"email\": \"john@example.com\"}" }
是否可以在外部JSON Schema中定义嵌套在details字符串属性中的JSON结构?我设想的Schema示例如下:
{ "type": "object", "properties": { "name": { "type": "string" }, "details": { "type": "string", "contentMediaType": "application/json", "schema": { "type": "object", "properties": { "age": { "type": "number" }, "email": { "type": "string" } } } } } }
回答
完全可以用这种方式定义嵌套的JSON结构,你的Schema写法是符合JSON Schema规范的。
这里用到了JSON Schema的**内容校验(content validation)**特性,其中:
contentMediaType: "application/json"明确声明details字段的字符串内容是JSON格式的数据- 嵌套的
schema关键字则定义了这个JSON内容必须满足的结构规则——也就是details字符串解析后,必须是包含age(数字类型)和email(字符串类型)属性的对象。
需要注意的是,部分旧版的JSON Schema校验工具可能不支持content validation特性,建议使用兼容JSON Schema Draft 7及以上版本的校验库,才能确保这个规则正常生效。
内容的提问来源于stack exchange,提问作者Yurii Khomiak
相关产品推荐
相关产品推荐

