2

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

我收到以下错误:

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

出错的那一行是:

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

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

谢谢 :-)

4

1 回答 1

6

首先,uint8只是byte. 因此[]uint8与 相同[]byte

错误消息告诉您的是 document[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])

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

于 2013-07-04T10:54:11.880 回答