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

Pat*_*ick 2 types go

我试图从文档中获取一个JSON字符串并进入GOlang中的SimpleJson,尽管我遇到了类型问题(再次......)

我收到以下错误:

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

并且错误的线是:

js, err := simplejson.NewJson(document[0])
Run Code Online (Sandbox Code Playgroud)

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

谢谢 :-)

ANi*_*sus 6

首先,uint8它只是一个别名byte.因此[]uint8是一样的[]byte.

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

从你的评论很明显document是一个string.你应该将它转换为[]字节.如果JSON数据本身包含一个数组,则必须首先解析文档(将其传递给NewJson),然后才能检索JSON数组的第一个值.

所以,改为将代码更改为:

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

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