我在
October写了一个JSON编译器和反编译器.在对其他人的JSON运行一堆
tests后,我很满意它的工作,并继续前进.我主要专注于编译器,因为这通常是困难的部分,试图理解人们可以抛出的所有变量.正如所宣传的那样,JSON很容易使用(虽然不是那么简单,但它本来就是这样).不管.
现在我们已经开始获得牵引力的格式,River2显示的news流的JSONification.一堆Javascript开发者在这些数据的渲染上是working,其中一些现在已经比我使用的更好了,但是没有一个功能足以让我切换到.
但是JSON存在问题.
每组新闻比特被组织为一组标量数据,如饲料名称,网址,上次阅读饲料时等.然后有一个或多个新闻项目.如果有一个项目,我只包含一个名为item的结构.如果有多个我包含结构列表.该列表是命名项目.我知道这是重复JSON元素的惯例.
http://scripting.com/images/2010/12/17/jsonShot.gif
在上面的屏幕截图中,有两个“updatedFeed”元素.第一个只有一个项目,第二个项目不止一个.
这会导致一些语言中的人出现问题,因为(显然)他们很难在没有事先知道其类型的情况下处理对象.所以他们说解决方案很简单,总是把它作为一个列表.对他们来说很简单,但…… 🙂
但在我看来,这并不是那么简单.因为我使用的是通用的JSON序列化程序,所以它无法知道“item”应该始终是一个列表.除非…
处理这个问题的一种方法(我不喜欢也不会这样做)就是把所有东西都列为清单.
我只是想知道其他JSON生成环境在这种情况下做了什么.
最佳答案 JSON是一种序列化格式.如果相同(预期)对象每次具有相同的模式,或者接收器构建为灵活或忽略更改的部分,则通常效果最佳.
在这种情况下,听起来我的新闻流总是应该具有相同的格式,所以听起来你应该调整你正在“编译”到JSON的对象,这样它总是具有相同的结构,或者使用像JSON Schema这样的东西.