我很惊讶,没有人在这个问题之前提到这个问题.
查看Json对象文档和快速的谷歌搜索没有产生令人满意的结果.
它的优点是什么?怎么运行的?
编辑:为了弄清楚,看看这个扁平化/不平坦的例子.
Fastest way to flatten / un-flatten nested JSON objects
谢谢.
解决方法
有很多情况下,您会收到由某个库自动构建的JSON文本.在整个编程语言中,有许多构建JSON文本的库(一个
example is here).
每当库添加一些额外的对象或数组包装时,您可能想要摆脱这些可能是因为您将JSON发送到服务器,并且您的代码崩溃,因为它需要一个原始值而不是一个对象(或数组).或者,如果您的JSON是服务器响应,则不希望由此产生的JavaScript代码在对象/数组之间不一致或不对象/数组.在所有这些情况下,扁平化是有帮助的,因为它会节省您的时间.您将不得不实施较少的if / elses,您可以可靠地期望您的数据结构尽可能平坦.
改进上述情景的代码的另一种方法是以最大的鲁棒方式编写代码,所以没有办法通过多余的包装来崩溃.所以总是期待一些包装,并得到它的内容.然后,不需要扁平化.
你看,这取决于什么是构建JSON和解析它.建筑物可能超出您的范围.
这也导致数据模型问题.我已经使用XML代码,如果有一些XY的0个条目,或者如果有一个XY的> 0条目,则需要以不同的方式解析为安静.拥有允许有一个XY的0个或更多条目的包装器将使其更容易实现.这些是数据模型.
在所有情况下,JSON表示我手动组合的对象结构,我希望它不会改变.所以扁平化我所设计的细节会令人不安.我看到他们的标准操作不需要扁平化(例如JSON.stringify(),json_encode()等)