javascript - 为什么以及何时我们需要展平 JSON 对象?

标签 javascript json flatten

我很惊讶之前 StackOverflow 上没有人问过这个问题。

查看 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,则需要以不同的方式进行安静解析。拥有一个允许包含 0 个或多个 XY 条目的包装器将使生活更轻松。这些是数据模型描述。

在 JSON 表示我手动组合的对象结构的所有情况下,我希望它不会更改。因此,将我详细设计的东西弄平会令人不安。据我所知,标准操作不需要展平(例如 JSON.stringify()json_encode() 等)

关于javascript - 为什么以及何时我们需要展平 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24833379/

相关文章:

list - 在 Scala 中展平列表列表而不使用展平方法会产生不好的结果

javascript - 在 Javascript 不工作的情况下点击显示/隐藏

javascript - CSS3 幻灯片问题

javascript - 如何使用 jQuery 的 json2html 将文件内的文本渲染到另一个 html 页面中?

ios - 解析响应 Facebook iOS sdk

php - 在android中使用JSON传递数据数组

javascript - 将对象数组中的对象展平的递归函数

javascript - 使用 underscoreand 和 lodash 库按 ID 从数组中获取项目

php - 使可编辑的 div 在 div 长度末尾换行

java - 如何扁平化整个包层次结构?