出于某种原因,我必须两次调用JSON.parse来在JavaScript中创建一个对象。我从Go(Golang)服务器生成JSON。
这是我正在使用的JavaScript代码。
ws.onmessage = function(e) {
console.log(e.data);
console.log(JSON.parse(e.data));
console.log(JSON.parse(JSON.parse(e.data)));
};
这就是我在Chrome控制台中看到的内容。
"{\"hello\":\"world\"}"
{"hello":"world"}
Object {hello: "world"}
这就是我在服务器端生成JSON的方式。我怀疑我的服务器代码是错误的。
var jsonBuffer bytes.Buffer
jsonBuffer.WriteString("{")
for key, value := range mydict {
jsonBuffer.WriteString(`"` + key `":"` + value + `"`)
}
jsonBuffer.WriteString("}")
return jsonBuffer.String()
这是我正在努力的简化。实际上,mydict
定义为map[string]mystruct
。
mystruct
是这样的:
type mystruct struct {
Foo int
Bar float64
}
答案 0 :(得分:0)
为什么要手工构建json响应?我建议使用json包。您的代码看起来像这样
package main
import (
"fmt"
"encoding/json"
)
type Mystruct struct {
Foo int
Bar float64
}
func main() {
m := Mystruct{1,100}
j, _ := json.Marshal(m)
fmt.Print(string(j))
}