在不知道结构的情况下解组嵌套 JSON
当使用包含具有不同架构的 JSON 文档的键值存储时,很难将 JSON 数据解组为特定结构,而无需事先了解其结构。本文探讨了解决此问题的方法并提出了解决方案。
方法 1:解组到接口
要处理具有未知结构的 JSON 文档,您可以将它们解组为接口类型,例如map[string]interface{}。这允许您以字典的形式访问底层数据,而无需定义特定的结构。
通过将顶级 foo 命名空间解组到 map[string]*json.RawMessage,您可以检索嵌套的 JSON数据。但是,您仍然需要确定 foo 命名空间中数据的类型,才能将其正确解组到结构中。
方法 2:正则表达式类型提取
另一种方法方法是从JSON数据中提取类型字符串,并使用正则表达式来确定结构体类型。一旦知道类型,您就可以将 json.RawMessage 解组到适当的结构中。
重复解组
是否需要考虑重复解组取决于性能要求您的申请。如果速度至关重要,则直接解组到特定结构而不是使用中间接口可能会更有效。然而,对于小数据集或偶尔使用,性能损失可能并不显着。
更新
根据提供的更新,提出了两种可能的解决方案:
a) 复制并解组
b) 正则表达式和解组
以上是如何在不知道其结构的情况下解组嵌套 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!