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

go中int64的json解析;空值

何晗昱
2023-03-14
问题内容

我正在尝试在Go中解析json流。我创建了一个简化的示例:

 package main
 import (
    "encoding/json"
    "fmt"
 )

 var d = []byte(`{ "world":[{"data": 2251799813685312}, {"data": null}]}`)

 type jsonobj struct{ World []World }
 type World struct{ Data int64 }

 func main() {
    var data jsonobj
    jerr := json.Unmarshal(d, &data)
    fmt.Println(jerr)
 }

这会给我

go run testmin.go
json: cannot unmarshal null into Go value of type int64

我在sql包中发现了一个可为null的int64
,但是json似乎无法处理它。

json是否可以处理可为null的int64类型?如果可能的话,我会对将JSON null 转换为-1或MinValue 感到满意。

谢谢您的投入,Fabian


问题答案:

只需使用一个*int64。指针可以为nil,也可以指向具有关联值的int64,并且它们可以与Go的JSON包一起正常工作。



 类似资料:
  • 问题内容: 我正在Go中处理一个json POST,其中包含一个包含64位整数的对象数组。当使用json.Unmarshal时,这些值似乎被转换为float64,并不是很有用。 有什么办法可以在json.Unmarshal的输出中保留原始的int64? 转到上面代码的游乐场 问题答案: 解决方案1 您可以使用Decoder和UseNumber解码您的号码而不会丢失: 该类型的定义如下: 这意味着您

  • 问题内容: 我们有事务日志文件,其中每个事务都是JSON格式的一行。我们经常需要获取数据的选定部分,执行一次时间转换,然后以特定格式将结果馈送到另一个系统中。我编写了一个Python脚本,可以根据需要执行此操作,但是我希望Go可以更快,并且可以给我一个开始学习Go的机会。因此,我写了以下内容: 编译时没有任何抱怨,但是令我惊讶的是缺乏性能改进。为了进行测试,我将2,000,000行日志放入tmpf

  • 在web2py服务器上使用python我有以下问题。如何循环遍历json以查找所有具有空值(或空字符串)的键并收集这些键以报告丢失的内容: 这是我的json示例。 我想检索一个包含所有键的列表,如果嵌套的话,则不是第一级。二级。missingData=[scriptFrom,nbworkersDays.nbWorkersTo,nbworkersDays.timeTo] 关于如何解决此问题或如何收集

  • 问题内容: 使用该包可以很容易地解析如下对象。 我面临的问题是从服务器返回多个命令,如下所示: 无法使用以下代码进行解析。 我正在尝试解析Common Crawl数据(请参阅示例)。 我怎样才能做到这一点? 问题答案: 假设您的输入确实是一系列有效的JSON文档,请使用json.Decoder对其进行解码: 游乐场:https://play.golang.org/p/ANx8MoMC0yq 如果您

  • 问题内容: 我正在尝试解析由tar生成的时间戳,例如“ 2011-01-19 22:15”,但无法计算出time.Parse的时髦API。 以下产生“解析时间“ 2011-01-19 22:15”:超出范围的月份” 问题答案: 请遵循Go 时间包文档中的说明。 布局中使用的标准时间为: 2006年1月2日星期一1:04:05 MST(MST是GMT-0700) 现在是Unix时间。(将其视为。)要

  • 下面是我在点击特定Web服务时收到的JSON响应: 我不知道哪个索引有我的期望值(我需要在确定哪个具有)后验证多个值),这是动态的。不希望使用硬编码值。并匹配,因为这将在下次更改。 对此我有两个问题: 如何将响应传递给java代码并获取具有的数组索引,以便使用此索引进行验证? 下面的代码不起作用。