返回顶部
首页 > 资讯 > 后端开发 > GO >在 Golang 中编组有序映射时排序 JSON 键的问题
  • 745
分享到

在 Golang 中编组有序映射时排序 JSON 键的问题

键值对 2024-02-09 10:02:43 745人浏览 安东尼
摘要

在golang中编组有序映射时,排序JSON键是一个常见的问题。当我们从数据库或其他数据源中获取数据并将其编组为jsON格式时,经常需要对键进行排序,以保证输出的JSON对象具有一致的

golang中编组有序映射时,排序JSON键是一个常见的问题。当我们从数据库或其他数据源中获取数据并将其编组为jsON格式时,经常需要对键进行排序,以保证输出的JSON对象具有一致的键顺序。在Golang中实现这一功能并不复杂,我们可以使用结构体和切片的组合来实现对键进行排序的功能。通过将键值对存储在结构体的切片中,并使用sort包对切片进行排序,我们可以轻松地实现排序JSON键的目标。在本文中,我们将介绍如何在Golang中编组有序映射时排序JSON键,并提供一个简单的示例代码来演示该过程。

问题内容

我需要迭代给定的 JSON 片段,并且数组包含单个项目以将其转换为映射。这很容易做到。

问题是,我需要按照呈现的顺序将一段 JSON 返回给客户端。

我找到了一些有关使用 OrderedMap 的指南,但这对我来说并不一致。

有时我会得到正确的顺序,有时则不然。

https://go.dev/play/p/b9hmS9BEymy

有人可以建议吗?从日志记录来看,问题可能在于解组传入的 JSON

我真的不愿意使用结构,因为我需要处理的真正的 JSON 非常复杂,并且需要大量的工作,因为有很多变体。

解决方法

解组 json 不会遵循顺序,因为您使用 map[string]interface{}。 golang 中的 Map 是一个 HashMap,所以这并不奇怪。您应该做的是创建一个 UnmarshalJSON 函数并进行自定义解组,否则无法保留顺序。

您可以对除映射之外的所有其他类型使用标准解组,这应该会使其变得更容易。如果您想了解如何做到这一点的详细信息,我也可以解释

以上就是在 Golang 中编组有序映射时排序 JSON 键的问题的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 在 Golang 中编组有序映射时排序 JSON 键的问题

本文链接: https://www.lsjlt.com/news/562374.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作