英文:
cannot use document[0] (type uint8) as type []byte in function argument
问题
我正在尝试从文档中获取一个JSON字符串,并将其传递给GO语言中的SimpleJson,但是我遇到了类型的问题(再次..)
我得到了以下错误:
> 无法将document[0](类型为uint8)作为函数参数中的[]byte类型使用
而引发错误的代码行是:
js, err := simplejson.NewJson(document[0])
请问有人可以帮我修复这个问题吗?还有一个好的地方可以了解类型和转换吗?我之前使用的是没有类型的php和转换简单的python,GO在这方面有点令人困惑。
谢谢
英文:
I'm trying to get a JSON string pulled from a document and into SimpleJson in GOlang, though I've run into a problem with the types (again..)
I get the following error:
> cannot use document[0] (type uint8) as type []byte in function argument
and the line which bugs up is:
js, err := simplejson.NewJson(document[0])
Could anyone please help me fix this, and also is there a good place I can read up about types and conversions? Having come from php which has no types and python where the conversions are simple, GO is a bit confusing on this front.
Thanks
答案1
得分: 6
首先,uint8
只是byte
的别名。因此,[]uint8
与[]byte
是相同的。
错误信息告诉你的是document[0]
的类型是uint8
而不是[]byte
。
从你的评论中可以看出,document
是一个字符串。你只需要将它转换为[]byte
。如果JSON数据本身包含一个数组,你必须首先解析文档(将其传递给NewJson),然后才能检索JSON数组的第一个值。
所以,改变你的代码为:
js, err := simplejson.NewJson([]byte(document))
// 错误检测
jsonArray, err := js.Array()
// 更多错误检测
fmt.Println(jsonArray[0])
(我假设你已经导入了github.com/xiocode/toolkit/simplejson
包。这是我找到的唯一一个带有simplejson.NewJson的包)
英文:
First of all, uint8
is simply an alias for byte
. Therefor []uint8
is the same as []byte
.
What the error message tells you is that document[0] is of type uint8
and not []byte
From your comment it is clear that document
is a string
. You should just convert it to []byte. If the JSON data in itself contains an array, you must first parse the document (pass it to NewJson) before you can retrieve the first value of the JSON array.
So, instead change your code to:
js, err := simplejson.NewJson([]byte(document))
// error testing
jsonArray, err := js.Array()
// more error testing
fmt.Println(jsonArray[0])
(I assume you have imported the github.com/xiocode/toolkit/simplejson
package. The only one I could find with simplejson.NewJson)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论