为了账号安全,请及时绑定邮箱和手机立即绑定

JSON 模式到 C# 类

JSON 模式到 C# 类

C#
Helenr 2021-11-21 18:09:50
我是 JSON 的新手,但我对 C# 有点了解。我有一个 JSON 模式,我遇到了一个我不确定如何将它放入对象类的部分。"def_subscore": {    "type": "number",    "minimum": 0,    "maximum": 10},"def_impact": {    "type": "object",    "properties": {        "baseMetricV3": {            "type": "object",            "properties": {                "cvssV3": {"$ref": "cvss-v3.0.json"},                "exploitabilityScore": {"$ref": "#/definitions/def_subscore"},                "impactScore": {"$ref": "#/definitions/def_subscore"}            }        }    }}正如我们所看到的,baseMetricV3是一个类对象,并定义了它的类型和属性。exploitabilityScore应该是一个“Subscore”,它被定义为一个具有最小和最大限制的数字。我可以创建一个像双精度/整数一样的类并且还必须通过特定于类的验证吗?模式只是说exploitabilityScore并且impactScore只是需要在我的代码中进行验证以确保值介于 0 和 10 之间的双精度/整数?或者模式只是说exploitabilityScore并且impactScore只是双/整数,顺便说一下,数据不应该以 0 和 10 以外的值出现(因为在他们这边已经完成了验证def_subscore,而且信息量更大)?
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

如果你的模式说prop是类型,number你必须double/int/float/...为该属性定义一些数字类型,而不是一个类。


如果您只想检查 JSON 对象是否符合给定的架构,您可以使用一些 json 验证器库根据架构验证对象。


此外,(或者,例如,如果您将 JSON 字符串解析为自定义类),您可以将RangeAttribute用于您的类


class SomeClass {

    [Range(1, 10)]

    public int SomeValue {get;set;}

}

对于其他约束,可能有其他注释。您甚至可以自己定义它们,如下所示https://stackoverflow.com/a/7256854/3776927


查看完整回答
反对 回复 2021-11-21
  • 1 回答
  • 0 关注
  • 186 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信