strconvUnquote
package main

import (
    "encoding/json"
    "fmt"
    "strconv"
)

type response struct {
    A string
    B string
    C string
    D int
    E string
}

func main() {

    str := (`"{\"A\":\"a\",\"B\":\"b\",\"C\":\"c\",\"D\":2,\"E\":\"e\"}"`)
    fmt.Printf(str)
    s, err := strconv.Unquote(str)
    fmt.Println()
    fmt.Println(s, err)
    var resp response
    if err := json.Unmarshal([]byte(s), &resp); err != nil {
        panic(err)
    }
    fmt.Println(resp)

}

输出:

"{\"A\":\"a\",\"B\":\"b\",\"C\":\"c\",\"D\":2,\"E\":\"e\"}"
{"A":"a","B":"b","C":"c","D":2,"E":"e"} <nil>
{a b c 2 e}