我有一个这样的结构:
type User struct {
Login string `json:",string"`
PasswordNonce Nonce `json:",string"`
PasswordHash HashValue `json:",string"`
CreatedOn time.Time `json:",string"`
Email string `json:",string"`
PhoneNumber string `json:",string"`
UserId Id `json:",string"`
}
生成 JSON 并发送它的代码如下:
func AddUserHandler(w http.ResponseWriter, r *http.Request) {
var userRecord model.User
encoder := json.NewEncoder(w)
err = encoder.Encode(userRecord)
if err != nil {
panic(err)
}
}
当我使用Golang内置的JSON编码器对其进行编码时,字段名称显示时不带引号,这会阻止node.js中的JSON.parse函数读取内容。 有谁知道解决办法吗?
谢谢!
最佳答案
这是我的错误。问题出在 Javascript 代码中。 我正在使用node.js请求包,它似乎默认解析JSON响应。在下面的代码中,response.body 已经是一个包含 JSON 字符串解析内容的映射:
var request = require('request');
var options = {
uri: 'http://localhost:3000/AddUser',
method: 'POST',
json: {}
};
request(options, function(error, response, body) {
console.log(error)
console.log(response.body)
console.log(response.body["UserId"])
data = response.body
// data = JSON.parse(response.body) gives an error...
});
关于javascript - 用于用 JavaScript 解析的 Golang JSON 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20597316/