0
私は単純なhttpクライアントでGoを使用しています。ここで私は非整列化していたエンティティです:json.Unmarshall()は単一のエンティティで動作しますが、スライスでは動作しません。
type Message struct {
Id int64
Timestamp int64
Text string
Author User
LastEdited int64
}
type User struct {
Id int64
Name string
}
単一のエンティティがJSONで次のようになります。しかし
var m Message
err = json.Unmarshal(body, &m)
if err != nil {
printerr(err.Error())
}
println(m.Text)
:
{
"text": "hello, can you hear me?",
"timestamp": 1512964818565,
"author": {
"name": "andrea",
"id": 3
},
"lastEdited": null,
"id": 8
}
ゴー/ jsonのは、単一のエンティティを非整列化問題はありませんエンドポイントの返品が複数のエンティティである場合:
[
{
"text": "hello, can you hear me?",
"timestamp": 1512964800981,
"author": {
"name": "eleven",
"id": 4
},
"lastEdited": null,
"id": 7
}
]
そして、私は構造体のスライス上で動作するように私の対応するアンマーシャルを変更、移動でエラーが発生します:
var m []Message
err = json.Unmarshal(body, &m)
if err != nil {
printerr(err.Error()) // unexpected end of JSON input
}
for i := 0; i < len(m); i++ {
println(m[i].Text)
}
できますか?
を与えます。それはおそらく閉鎖 "]"とおそらくもっと欠けているでしょう。 –
HTTP応答の読み取りに使用されたコードを表示します。 –
私は単に間違ったURLを要求していて空の応答を得ていた –