jsonデータをアンマーシャルしようとしています。これがあるので、スライスが内部に、引用符なしで意図的である私は、メッセージ構造体に(\の前に手動で追加「)golangのjson内でスライスを解析する方法は?
data:="{\"queryEndTime\" : \"2017-11-15T14:39:00Z\", \"message\" : [{\"spamScore\":67,\"phishScore\":0}]}"
HTTPSから取得しています:
type Message struct {
QueryEndTime string `json:"queryEndTime"`
Message []string `json:"message"`
}
が、私は正しいQueryEndTimeと空を取得していますメッセージ。私は、メッセージの種類を変更しようとしましたが、それは常に
var message Message
json.Unmarshal([]byte(data), &message)
fmt.Printf("QueryEndTime: %s\nMessage: %s\n", message.QueryEndTime, message.Message)
QueryEndTime: 2017-11-15T14:39:00Z
Message: []
が行く遊び場https://play.golang.org/p/on0_cSKb0cでそれを参照してください空のままです。
「スライスに引用符がない」とはどういう意味ですか?あなたは単一のオブジェクトを持つjson配列を持っています。それは文字列のスライスに非整列化できません。 – JimB
jsonのメッセージはオブジェクトであり、 "引用符なし"の文字列ではありません。 – mkopriva
エラーメッセージ(「Play Playground」(https://play.golang.org/p/VZ8hoZbU3Y))のような「kind」であれば、それが失敗する理由がわかります:_ "json :オブジェクトを非構造化フィールドに移動できません。タイプ文字列 "_"のMessage.message。エラーを絶対に省略しないでください。 – icza