假设我有

fname: string
lname: string
age: string

这些都不是必需的.用户可以向我发送上述任何属性,但没有其他未声明的属性.他们可以超过我fname分、lname分和age分或全部.但是如果他们把所有的和额外的财产都传给我,比如middle_name,那么信息应该被拒绝.

How would I define a schema like this?

推荐答案

You can create a json-schema and use the option:

additionalProperties = false

That way you only allow the attributes defined in properties. In your case:

{
    "properties": {
        "fname": {"type": "string"},
        "lname": {"type": "string"},
        "age": {"type": "string"}
    },
    "additionalProperties": false
}

Json相关问答推荐

jq不会为空输入返回非零

使用JSONata将具有相同键的字典合并

从Json响应中为需要每个值的Post请求提取多个值

GO KaZaam转换返回意外结果

给定一个包含两个数组的JSON输入文件,如何使用Jolt将一个数组中的每个元素与另一个数组组合在一起?

使用JQ将JSON输出转换为CSV复杂 struct

如何避免解析 ISuperObject 类型字段中的 json 对象

jq如何合并两个json对象

Jolt - 如何比较 if else 条件的两个值

json 字符串到 Postgres 14 中的表视图

取消嵌套数组并将数组名称添加为附加字段

使用 jq 工具将文本从 txt 文件转换为 json

golang递归json来构造?

使用 jq 和 awk 拆分大型 JSON 文件

使用 JQ 从文件中删除重复的 JSON 块

Json.NET SerializeObject 转义值以防止 XSS

Jackson 中的 readValue 和 readTree:何时使用哪个?

有什么方法可以在 elasticsearch 服务器中导入 json 文件(包含 100 个文档).?

如何安装 json gem - 无法构建 gem 原生扩展(mac 10.10)

如何使用 Gson 将 JSONArray 转换为 List?