【问题标题】:cannot use document[0] (type uint8) as type []byte in function argument不能在函数参数中使用 document[0](类型 uint8)作为类型 []byte
【发布时间】:2013-07-02 07:00:54
【问题描述】:

我正在尝试从文档中提取 JSON 字符串并放入 GOlang 中的 SimpleJson,尽管我遇到了类型问题(再次......)

我收到以下错误:

不能在函数参数中使用 document[0](类型 uint8)作为类型 []byte

而出错的那一行是:

js, err := simplejson.NewJson(document[0])

谁能帮我解决这个问题,还有我可以阅读有关类型和转换的好地方吗?来自没有类型的php和转换简单的python,GO在这方面有点混乱。

谢谢:-)

【问题讨论】:

    标签: types go


    【解决方案1】:

    首先,uint8 只是byte 的别名。因此[]uint8[]byte 相同。

    错误消息告诉您的是 document[0] 的类型是 uint8 而不是 []byte

    从您的评论中可以清楚地看出documentstring。您应该将其转换为 [] 字节。如果 JSON 数据本身包含一个数组,则必须首先解析文档(将其传递给 NewJson),然后才能检索 JSON 数组的第一个值。

    因此,请将您的代码更改为:

    js, err := simplejson.NewJson([]byte(document))
    // error testing
    jsonArray, err := js.Array()
    // more error testing
    fmt.Println(jsonArray[0])
    

    (我假设你已经导入了 github.com/xiocode/toolkit/simplejson 包。我能找到的唯一一个带有 simplejson.NewJson 的包)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多