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

为JSON字段分配null而不是空字符串

靳越
2023-03-14
问题内容

由于空字符串是Go的零/默认值string,因此我决定将所有此类字段定义为interface{}。例如

type student struct {
    FirstName  interface{} `json:"first_name"`
    MiddleName interface{} `json:"middle_name"`
    LastName   interface{} `json:"last_name"`
}

如果该值不适用于该特定字段,则我正在发送数据的应用程序期望使用null而不是空字符串。

这是正确的方法吗?或者有人可以向我指出比这更好的方法。


问题答案:

在json包文档中:

指针值编码为指向的值。nil指针编码为空JSON对象。

因此,您可以存储指向字符串的指针,如果不为nil,则将其编码为字符串;如果为nil,则将其编码为“ null”

type student struct {
  FirstName  *string `json:"first_name"`
  MiddleName *string `json:"middle_name"`
  LastName   *string `json:"last_name"`
}


 类似资料:
  • 问题内容: 如何拆分字符串并获取NULL值而不是空字符串。 我特别感兴趣的两个方法和。我希望这个查询: 将返回第三行而不是空字符串。有没有简单的方法可以做到这一点,即使用特殊字符?我的意思是: 我希望我可以使用方法从字符串中提取NULL : 从这里获取的代码:https : //sqlperformance.com/2016/03/t-sql-queries/string- split 问题答案:

  • 所以这是我以前在jooq 3.11中工作的查询。 我正在更新一个JSON字段,但是它使用Json绑定映射到我模型中的字符串,我将在下面发布 这在升级到jooq 3.13.2后不再有效。我还不得不将我的sql方言更改为mysql,即使我正在使用mysql 5_7数据库,这可能是问题所在? 我也试过这个,它还是一样的 JsonBinding.class JsonConverter.class 以下是j

  • 问题内容: 我有一个将某些变量插入数据库的MySQL语句。我最近添加了两个可选字段($ intLat,$ intLng)。现在,如果未输入这些值,我将传递一个空字符串作为值。如何将明确的NULL值传递给MySQL(如果为空)? 问题答案: 要将NULL传递给MySQL,只需执行此操作。 因此,在您的代码中,检查是,如果是,请使用代替或。

  • 在下面的代码中,我需要检查版本字符串是否为空,然后将其值附加到请求变量。 如何检查不在if条件下?

  • 问题内容: 在golang中,有没有办法查看是否可以将解编入结构的json字段与设置为null的json字段区分开?因为两者都将struct中的值设置为nil,但是我需要知道字段是否以该字段开头,并查看是否有人将其设置为null。 VS 当解组为结构时,两个json均为零。任何有用的资源将不胜感激! 问题答案: 使用以“拖延”解组过程决定做某件事之前要确定原始字节: 参观游乐场https://pl

  • 问题内容: 我有这段代码: 它将引发不匹配的组错误。但是,如果不匹配,我想在那里添加空字符串,而不是抛出错误。我怎样才能做到这一点? 注意:我的完整代码比此示例复杂得多。但是,如果您找到更好的解决方案,如何遍历比赛并在其中添加数字,则可以共享。我的完整代码: 问题答案: 在Python 3.5之前的版本中,对Python中失败的捕获组的反向引用未使用空字符串填充。这是在bugs.python.or