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

Go中带有JSON Marshal的小写JSON密钥名称

欧阳正卿
2023-03-14
问题内容

我希望使用该"encoding/json"软件包封送在我的应用程序的一个导入软件包中声明的结构。

例如。:

type T struct {
    Foo int
}

因为是导入的,所以结构中所有可用的(导出的)字段都以大写字母开头。但我希望使用小写的键名:

out, err := json.Marshal(&T{Foo: 42})

将导致

{“ Foo”:42}

但我希望得到

{“ foo”:42}

是否可以通过一些简单的方法解决问题?


问题答案:

看一下encoding /
json.Marshal
的文档。它讨论了如何使用struct字段标签来确定如何格式化生成的json。

例如:

type T struct {
    FieldA int    `json:"field_a"`
    FieldB string `json:"field_b,omitempty"`
}

这将生成JSON,如下所示:

{
    "field_a": 1234,
    "field_b": "foobar"
}


 类似资料:
  • 我们的android项目由移动和wear应用组成(wear应用正在开发中),我们正在尝试发布移动应用。当我们尝试生成签名的apk时,会得到以下消息: 当它读它说失败的任务:磨损:包装eRelease,实际上我们只是选择移动,而选择签署APK。 有人能指出我的错误吗?提前道谢。

  • 问题内容: 我正在使用发布JSON响应的第三方工具。它工作得很好,但是我需要使用的键之一里面有一个冒号,而且我不知道如何在JavaScript中选择该对象。 例如: 我该如何选择?当我将冒号留在其中以及尝试放下冒号时,会出现语法错误。 问题答案: 这很简单: 点/括号符号

  • 我在Eclipse中创建了一个简单的类: 我得到了这个错误: 尽管我能够通过使Java类名以大写字母开头来解决这个问题。有人能帮助理解这里到底发生了什么吗?

  • 在下面的代码中(也在http://play.golang.org/p/77fRvrDa4A但是在浏览器中需要“太长的时间来处理”)124字节版本的sourceText不会加密,因为1024的“消息对于RSA公钥大小来说太长”。它和更长的124字节sourceText版本可使用2048位密钥大小。 我的问题是如何准确计算rsa中的密钥大小。GenerateKey给定源文本的字节长度?(一个小段落大小

  • 问题内容: 关键字名称,JavaScript对象或JSON字符串中是否有任何禁止的字符?还是需要转义的字符? 更具体地说,我想在键名中使用“ $”,“-”和空格。 问题答案: 否。任何有效的字符串都是有效的密钥。只要您能逃脱它,它甚至可以拥有: 在将此类值加载到某些语言(尝试将键与对象字段名称关联)时,您可能会遇到困难。我不知道有任何这样的情况。

  • 这是json文件chatmessage.json