2013-04-09 49 views
0

我在一些情况下,json我从服务和数据库调用,由另一个组创建的数据库调用给了我无效的数据组合,并导致许多意想不到的错误下游。ui数据合同:客户端扩展验证json数据

在下面的小例子中,如果“rowContent”字段等于“1”,则对应的“行”需要是填充的javascript对象。 “rowContent1”和“row1”,“rowContent2”和“row2”是正确的。 “rowContent3”和“row3”不是。

我承认这个JSON的结构并不是太棒了。好吧,这有点古怪。这与我在生产中所处理的相当接近。我无法控制它。

在我开始尝试使用“row3”中不存在的数据之前,是否有数据驱动的方式来描述像这样的json数据关系?

或者,你会推荐我在这种情况下做什么?

感谢了,

拉里

{ "table" : [ 
     { 
      "aRowContent" : { 
       "rowContent1" : "1", 
       "rowContent2" : "0", 
       "rowContent3" : "1", 
      }, 
      "row1" : { 
       "myRowValue" : "red" 
      }, 
      "row2" : null, 
      "row3" : null 
     } 
    ] 
} 

回答

1

不使用JSON模式,肯定。 JSON Schema验证JSON数据的结构,而不交叉引用其他数据位。

我认为这个问题可能是您的数据结构中的冗余 - 当您可以从/table/0/row1的空检查中推导出相同的信息时,为什么需要/table/0/aRowContent/rowContent1

+0

我知道你不能控制格式 - 但是,这是冗余,它会停止正确验证。 – cloudfeet 2013-04-18 10:03:23

+0

同意。问题在于json的结构。不幸的是,这不是我的数据结构,或者我自己修复此问题并使用JSON模式。谢谢 – koolunix 2013-04-18 23:01:28