如何在golang中解析json内部的切片? [关闭]

I am trying to unmarshal json data. The slice inside is deliberately without quotes, because this is what I am getting from https (added manually \ before ")

data:="{\"queryEndTime\" : \"2017-11-15T14:39:00Z\", \"message\" : [{\"spamScore\":67,\"phishScore\":0}]}"

into Message struct:

type Message struct {
    QueryEndTime string `json:"queryEndTime"`
    Message []string `json:"message"`

}

but I am getting correct QueryEndTime and empty Message. I tried to change Message type but it always stays empty

var message Message
json.Unmarshal([]byte(data), &message)
fmt.Printf("QueryEndTime: %s
Message: %s
", message.QueryEndTime, message.Message)
QueryEndTime: 2017-11-15T14:39:00Z
Message: []

See it in go playground https://play.golang.org/p/on0_cSKb0c.

package main

import (
    "encoding/json"
    "fmt"
)

type Message struct {
    QueryEndTime string `json:"queryEndTime"`

    // you need to use a struct can use anon struct
    Message      []struct {
        SpamScore  int `json:"spamScore"`
        PhishScore int `json:"phishScore"`
    } `json:"message"`

}

func main() {
    var message Message

    // You can use backticks to for your example JSON, so that you don't have to escape anything.
    data := `{
        "queryEndTime" : "2017-11-15T14:39:00Z", 
        "message" : [
            {"spamScore":67, "phishScore":0}
        ]
    }`

    // please check for errors
    err := json.Unmarshal([]byte(data), &message)
    if err != nil {
        fmt.Println(err)
    }

    // +v prints structs very nicely 
    fmt.Printf("%+v
", message)
}

https://play.golang.org/p/Mu3WZCej3L

Have fun!