不能将文件[0](类型uint8)用作函数参数中的[]字节类型

时间:2013-07-04 10:03:50

标签: types go

我正在尝试将一个JSON字符串从文档中拉出并进入GOlang中的SimpleJson,尽管我遇到了类型问题(再次......)

我收到以下错误:

  

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

中的[]字节

和错误的行是:

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

有谁可以帮我解决这个问题,还有一个我可以阅读关于类型和转换的好地方吗?来自没有类型的PHP和转换很简单的python,GO在这方面有点令人困惑。

谢谢: - )

1 个答案:

答案 0 :(得分:6)

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

错误消息告诉您文档[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)