gpt4 book ai didi

json - 在 json 模式中定义键值对的正确方法是什么

转载 作者:行者123 更新时间:2023-12-03 13:32:19 26 4
gpt4 key购买 nike

我如何在 json 模式中定义键值对对象(“正确”的方式)?

我想定义这个:

"id" : 99,
_info : {
"name" : "somename",
"href" : "someUrl"
}

以下两项是否准确?:

1)
{
"type": "object",
"name": "MyObj",
"properties": {
"id": {
"type": "integer"
},
"_info": {
"type": "array",
"items": {
"type": "object"
"properties": {
"key": {
"type": "string",
"description": "key"
},
"value": {
"type": "string",
"description": "the value"
}
}
}
}
}
}

2)
{
"type": "object",
"name": "MyObj",
"properties": {
"id": {
"type": "integer",
"_info": {
"type": "object",
"additionalProperties": {
"type": "string",
"description": "string values"
}
}
}
}

实现这一目标的正确方法是什么,人们会知道模式是什么,对象在序列化/反序列化时会是什么样子?

最佳答案

在 JSON 中,对象已经是键值对的集合。你不需要任何特殊的东西来定义它:

{
"_info":{"type":"object"}
}

从这里您可以添加约束。
  • 如果您知道 key 的名称,则将它们添加到“属性”
  • 如果您知道所有可能的键,则将“additionalProperties”设置为 false
  • 如果要限制可能的键名,请使用“patternProperties”。

  • 更新 2019/09/10

    正如评论中所建议的,如果您想将所有属性限制为字符串类型,您可以这样做:
    {
    "title": "Force every property to have a string value",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "additionalProperties": {"type": "string"}
    }

    关于json - 在 json 模式中定义键值对的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26847903/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com