我是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”,它定义为具有最小和最大限制的数字。
我可以使类的行为类似于double / integer并且必须通过特定于类的验证吗?
该模式是否只是说exploitabilityScore
和impactScore
只是double / integers,需要在我的代码中进行验证以确保该值介于0到10之间?
还是该模式只是说exploitabilityScore
和impactScore
只是双精度/整数,所以数据绝不能带有0和10以外的值(因为验证已经完成了)在他们的身边,而def_subscore
更具参考价值)?
答案 0 :(得分:0)
如果模式表明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
所示的那样自己定义它们