Javascript json:无法将字符串解组为main.test_struct类型的Go值

Javascript json:无法将字符串解组为main.test_struct类型的Go值,javascript,json,go,Javascript,Json,Go,我从一个api收到一个json,我试图将其解组,但我不理解我得到的错误: json:无法将字符串解组为main.test_struct类型的Go值 下面是我得到的json: 这是我的密码: type test_struct struct { Lat float32 `json:"lat"` Lng float32 `json:"lng"` Acc int `json:"acc"` } func postGeo(w http.ResponseWriter,

我从一个api收到一个json,我试图将其解组,但我不理解我得到的错误:

json:无法将字符串解组为main.test_struct类型的Go值

下面是我得到的json:

这是我的密码:

type test_struct struct {
    Lat float32 `json:"lat"`
    Lng float32  `json:"lng"`
    Acc int       `json:"acc"`

}

func postGeo(w http.ResponseWriter, r *http.Request) {
        var t test_struct;
    err := json.NewDecoder(r.Body).Decode(&t)
    if err != nil {
        panic(err)
    }
/*  hah, err := ioutil.ReadAll(r.Body);

    if err != nil {
        panic(err)
    }
    Info.Println(hah)
    s := string(hah)
    Info.Println(s)
    Info.Println(t.Lat)*/
    defer r.Body.Close()
    Info.Println("POST FP")
    w.Header().Set("Access-Control-Allow-Origin", "*")
    fmt.Fprintf(w, "200")
}
如果有人有任何线索。。。 谢谢和问候

编辑:第二个版本仍然相同错误:

type test_struct struct {
    Lat float32 `json:"lat"`
    Lng float32  `json:"lng"`
    Acc int       `json:"acc"`

}

func postGeo(w http.ResponseWriter, r *http.Request) {
        var t test_struct;
    err := json.NewDecoder(r.Body).Decode(&t)
    if err != nil {
        panic(err)
    }
/*  hah, err := ioutil.ReadAll(r.Body);

    if err != nil {
        panic(err)
    }
    Info.Println(hah)
    s := string(hah)
    Info.Println(s)
    Info.Println(t.Lat)*/
    //defer r.Body.Close()
    fmt.Println("POST FP")
    w.Header().Set("Access-Control-Allow-Origin", "*")
    fmt.Fprintf(w, "200")
}
编辑三: 这里是发送数据的代码(javascript)


棘手的部分是如何通过
jQuery.ajax()
发送数据。在一个例子中,您可能会发现:

默认情况下,作为对象传递到数据选项的数据(从技术上讲,是字符串以外的任何内容)将被处理并转换为查询字符串,符合默认内容类型“application/x-www-form-urlencoded”

这意味着脚本发送的数据看起来更像:

lat=48.892423&lng=2.215331&acc=1962

棘手的部分是如何通过
jQuery.ajax()
发送数据。在一个例子中,您可能会发现:

默认情况下,作为对象传递到数据选项的数据(从技术上讲,是字符串以外的任何内容)将被处理并转换为查询字符串,符合默认内容类型“application/x-www-form-urlencoded”

这意味着脚本发送的数据看起来更像:

lat=48.892423&lng=2.215331&acc=1962

这是正文、引号和all中的文本值,还是包含在更大的json正文中的值?如果是这样的话,它是一个包含json的字符串,您需要取消对它的引用。@JimB这是json,我得到的json中通常没有引用。当我取消注释代码以打印正文时,得到的是打印。错误是特定的,您给它一个字符串,如果正常情况下没有引号,那么它将工作。我不知道
Info.Println
在格式化参数方面做了什么,可能会通过一个普通的
fmt.Println
显示输出,因此我们可以更好地猜测您正在使用什么。(顺便说一句,您不需要调用r.Body.Close)这里有一个简化版本:不幸的是,它工作得很好。可能是一个字符串在正文中转义了两次吗?这是正文、引号和all中的文本值,还是包含在更大的json正文中的值?如果是这样的话,它是一个包含json的字符串,您需要取消对它的引用。@JimB这是json,我得到的json中通常没有引用。当我取消注释代码以打印正文时,得到的是打印。错误是特定的,您给它一个字符串,如果正常情况下没有引号,那么它将工作。我不知道
Info.Println
在格式化参数方面做了什么,可能会通过一个普通的
fmt.Println
显示输出,因此我们可以更好地猜测您正在使用什么。(顺便说一句,您不需要调用r.Body.Close)这里有一个简化版本:不幸的是,它工作得很好。可能是你在一具尸体里发现了一根逃逸了两次的绳子?
lat=48.892423&lng=2.215331&acc=1962