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

如何在Go中使用排序键生成JSON?

陈法
2023-03-14
问题内容

在python中,您可以按以下顺序生成带有键的JSON:

import json
print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4, separators=(',', ': '))

我在Go中找不到类似的选项。有什么想法可以在旅途中实现类似的行为吗?


问题答案:

json包在编组时总是对密钥进行排序。特别:

  • 地图按字典顺序对键进行排序

  • 结构键按照结构中定义的顺序编组

该实现位于此处的ATM中:

  • http://golang.org/src/pkg/encoding/json/encode.go?#L359


 类似资料:
  • 问题内容: 我正在寻找一种生成元素列表的所有可能排列的方法。类似于python的 区别在于我不在乎排列是按需生成(例如python中的生成器)还是全部生成。我也不关心它们是否按字典顺序排序。我所需要做的就是以某种方式获得这些排列。 问题答案: 产生置换的算法很多。我发现的最简单的方法之一是堆算法: 通过选择一对要交换的元素,它会根据前一个生成每个排列。 在上面的链接中概述了这个想法和一个伪代码一个

  • 我知道这似乎已经讨论过了,答案是肯定的,可以为不同的字符串生成相同的值,但不太可能(Java的hashCode可以为不同的字符串生成相同的值吗?)。然而,它确实发生在我的应用程序中。 以下代码将生成相同的hashcode:-347019262(jave 1.7.25) 在这种情况下,我确实需要hashcode,我希望使用它为字符串生成唯一的主键。看来我做得不对。有什么建议吗? 多谢!

  • 问题内容: Go的库缺少生成64位数字的功能。大约四年来这是一个未解决的问题。同时,解决方法是什么样的? 问题答案: 最简单的方法是拨打两次: 另一个选择是调用(在Go 1.7中添加了 )以读取8个字节,然后使用该包从中获取值: 注意:作为状态文档,它始终读取与传递的切片长度相同的字节,并且始终返回错误,因此在这种情况下无需检查错误。 注意#2:您也可以使用代替,因为我们正在使用其所有字节生成一个

  • 我有一个dynamodb表,它的字符串主键名为,数字排序键名为。我想获取dynamodb表中年龄

  • 问题内容: 我正在开发一个在Go中接受JSONP请求的API。我可以将结构序列化为JSON并返回它,但是将JSON包装在padding或回调函数中有点尴尬,因为to的参数需要是字节切片: 我想我会将其封装在某些函数中。通常,我发现字符串/ [] byte转换很时髦。有一个更好的方法吗? 问题答案: 使用简化它: 或者,如果您只想在一个地方写东西:

  • 我使用以下命令创建了一个名为hibernate_sequence的序列 这是我的hibernate注释dao 为了向表中插入新记录,hibernate正在生成错误的查询以获取下一个序列值。。Hibernate总是发出此查询。。不管我做什么。。 我使用的是oracle 10G,它总是报告以下错误。。 发出的查询应该是