当前位置: 首页 > 面试题库 >

为什么以及何时需要展平JSON对象?

督建柏
2023-03-14
问题内容

令我惊讶的是,StackOverflow上没有人问过这个问题。

通过JSON对象文档和快速的Google搜索无法获得令人满意的结果。

有什么好处?它是如何工作的?

编辑:为了清楚起见,请看一下这个展平/未展平的示例

谢谢。


问题答案:

在许多情况下,您会获得由某些库自动构建的JSON文本。在整个编程语言中,有许多库构建JSON文本(此处是一个示例

每当库添加一些其他对象或数组包装时,您可能想要摆脱它们,可能是因为您将JSON发送到服务器,并且那里的代码崩溃是因为它期望使用原始值而不是对象(或数组)。或者,如果您的JSON是服务器响应,则您不希望生成的Javascript代码在对象/数组之间或对象/数组之间不必有所不同。在所有这些情况下,展平都是有帮助的,因为它可以节省您的时间。您将必须实现较少的if
/ elses,并且可以可靠地期望数据结构尽可能平坦。

针对上述情况改进代码的另一种方法是以最大程度的健壮方式编写代码,因此永远不会有多余的包装使其崩溃。因此,请始终期待一些包装并获取其中的内容。然后,不需要展平。

您会看到,这取决于正在构建JSON和对其进行解析的内容。该建筑物可能不在您的范围内。

这也导致数据模型问题。我处理过需要以其他方式安静地解析的XML代码,如果某个XY的0项存在,或者某个XY的>
0项存在。具有一个允许包含0个或多个XY条目的包装器将使生活更加轻松。这些是数据模型的描述。

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



 类似资料:
  • 所有其他唤醒锁都是有意义的,例如开发人员希望在执行某些操作时屏幕不会关闭。但在部分唤醒锁定文档中说: 如果您保持部分唤醒锁定,CPU将继续运行,而不考虑任何显示超时或屏幕状态,甚至在用户按下电源按钮后。在所有其他唤醒锁中,CPU将运行,但用户仍可以使用电源按钮将设备置于睡眠状态。 这是否意味着在执行某些操作时CPU可能会关闭?是否需要在服务中获取唤醒锁?

  • 我正在查看的源代码,在api文件夹中有一个文件,内容如下: 我听说这个文件是打字稿类型定义。这是什么?为什么需要它?

  • 问题内容: 我正在尝试了解如何在Spring应用程序中使用JBoss EAP6。我有一个示例OpenShift应用程序,它包含一个文件。 我找到了有关此文件的一些文档,但是我不清楚为什么以及何时应该在Spring应用程序中使用这些文件。内容如下: 为什么需要声明对模块的依赖关系?JBoss范例中的模块是什么?没有这个xml文件是否可以生存? 问题答案: 只要您的应用程序没有任何类加载问题,就不需要

  • 问题内容: class SomeClass extends Component{ someEventHandler(event){ } render(){ return } } 我看到零件的不同版本。 版本有何不同?还是只是偏爱问题? 问题答案: 绑定不是特定于React的东西,而是在Javascript中的工作方式。每个函数/块都有其自己的上下文,对于函数而言,其功能更特定于其调用方式。当添加E

  • 关于MQTT代理,我有点困惑。基本上,混乱的是,有太多的东西被用于数据存储、传输和处理(如Flume、HDInsight、Spark等)。那么,何时以及为什么需要使用一个MQTT代理呢? 如果我想使用带有HiveMQ的Windows 10 IoT应用程序,我可以从哪里获得详细信息?怎么用?我如何从这个MQTT代理中获益?我可以不直接使用Azure或HDFS从IoT应用程序发送数据吗?那么,MQTT