猿问

JSON 模式到 C# 类

我是 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,而且信息量更大)?


Helenr
浏览 187回答 1
1回答

呼啦一阵风

如果你的模式说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
随时随地看视频慕课网APP
我要回答