如何在NJsonSchema中使用json模式验证json c#

时间:2018-05-25 08:02:16

标签: c# jsonschema njsonschema

作为合同测试的一部分,我必须验证我从rest-endpoint获得的json响应,以及文件中存在的json-schema。我使用的是NJsonSchema并且无法执行此操作。

文件中的Json-schema如下所示

{
        'type': 'object',
        'properties': {
            'remaining': {
                'type': 'integer',
                'required': true
            },
            'shuffled': {
                'type': 'boolean',
                'required': true
            }
            'success': {
                'type': 'boolean',
                'required': true
            },
            'deck_id': {
                'type': 'string',
                'required': true
            }
        }
    }

Json我必须验证如下所示

{ 'remaining': 52, 'shuffled': true, 'success': true, 'deck_id': 'b5wr0nr5rvk4'}

任何人都可以使用NJsonSchema或Manatee.Json来了解如何使用jsonschema验证json。

1 个答案:

答案 0 :(得分:1)

  

免责声明:我是Manatee.Json的作者。

这看起来像一个 draft-03 模式(ex <-matrix(0,nrow=5, ncol= 2200) colnames(ex) = paste("X",1:ncol(ex),sep="") vec<- c(1:20) names(vec) = c( "X13" , "X25", "X58", "X79", "X95" , "X118", "X212", "X311", "X422" , "X536", "X899", "X1005","X1080" , "X1118", "X1322", "X1516","X1705" , "X1890", "X1925", "X2008") 关键字已从 draft-04 的属性声明中移出)。我不确定NJsonSchema是否支持旧版本的架构。海牛,杰森没有。

JSON模式当前位于 draft-07 ,而 draft-08 即将发布。

我的建议是通过将required关键字作为required的同级元素移入根目录,以将架构重写为以后的草案。 properties的值成为包含所需属性列表的字符串数组。

required

这样做,肯定可以与Manatee.Json一起使用,而且我期望也可以与NJsonSchema一起使用。

如果您有关于使用Manatee.Json的特定问题,请在我的Slack工作区打我。 GH自述文件上有一个链接。