如何在golang

时间:2018-03-17 17:52:53

标签: javascript json go request httpwebresponse

如何解码javascript中发送到服务器的json对象 并将它们保存到变量op1,op2,opr。

在java脚本中,我想解码服务器发送的响应并保存变量结果。

java脚本代码:

var calculate = { 
                operand1 : null,
                operand2 : null,
                operator : null
};

function UserAction() {
    var xhttp = new XMLHttpRequest();
    xhttp.open("POST", "http://localhost:8000/", true);
    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.send(calculate);
    var response = (xhttp.responseText);
    console.log(response);
}
UserAction();

转到服务器代码:

package main
import ("fmt"
        "net/http"
        "encoding/json"
)


type answer struct {
    result float64
}


func index(w http.ResponseWriter, r *http.Request) {
    ans := answer{result: 30}
    fmt.Println(r)
    w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
    w.Header().Set("Content-Type", "application/json; charset=UTF-8")
    w.Header().Set("Access-Control-Allow-Origin", "*")
    w.WriteHeader(http.StatusOK)
    if err := json.NewEncoder(w).Encode(ans); err != nil {
        panic(err)
    }    
}

func main() {
    http.HandleFunc("/",index)
    http.ListenAndServe(":8000", nil)

}

1 个答案:

答案 0 :(得分:0)

您可以在http响应中对json中的有效负载进行编码,也可以解码请求的正文。

err:= json.NewDecoder(request.Body).Decode(&answer);

阅读Go文档以供将来参考,并避免任何未明确引用该文档的第三方教程。

https://golang.org/pkg/encoding/json/