Golang JSON编码,用于使用JavaScript进行解析
Golang JSON encoding for parsing with JavaScript
我有一个这样的结构:
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函数读取内容。有人知道解决这个问题的办法吗?
谢谢!
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...
});
package main
import (
"encoding/json"
"math/rand"
"net/http"
"time"
)
type Nonce [32]byte
type HashValue [32]byte
type Id [32]byte
func MakeNonce() Nonce {
return makeByte32()
}
func MakeHashValue() HashValue {
return makeByte32()
}
func MakeId() Id {
return makeByte32()
}
func makeByte32() [32]byte {
bytes := [32]byte{}
rand.Seed(time.Now().Unix())
for i, _ := range bytes {
bytes[i] = byte(48 + (rand.Float64() * 10))
}
return bytes
}
type User struct {
Login string
PasswordNonce Nonce
PasswordHash HashValue
CreatedOn time.Time
Email string
PhoneNumber string
UserId Id
}
type myHandler struct {
userRecord User
}
func (mh myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
encoder := json.NewEncoder(w)
err := encoder.Encode(mh.userRecord)
if err != nil {
panic(err)
}
}
func main() {
user := User{
"test",
MakeNonce(),
MakeHashValue(),
time.Now(),
"test@test.com",
"5195555555",
MakeId(),
}
h := myHandler{user}
http.ListenAndServe("localhost:4000", h)
}
你能尝试使用json.Marshal
吗
jsonData, err := json.Marshal(data)
相关文章:
- Javascript JSON.parse not working
- Javascript:JSON请求仅在第一次工作
- 定义this.properties或objectName.properties的javascript JSON对象
- Javascript/JSON警报返回Undefined
- 使用XPath样式访问Javascript JSON对象属性
- JavaScript JSON关联对象键和值都作为日期时间戳
- Javascript-JSON-嵌套和分组
- Javascript json返回未定义
- 无标题Javascript JSON数组->CSV导出
- Javascript JSON对象替换对象中的字符串
- Javascript/Json日期转换问题
- 使用jstl c:forEach在迭代jsp bean上创建javascript json对象
- 为什么我的JavaScript / JSON脚本不能在Internet Explorer中工作
- 将数据从 Python 发送到 Javascript (JSON)
- JavaScript Json 值追加基于相等条件
- 在设置用户后,从 JavaScript JSON 请求中获取 Web 服务 (asmx) ASP.NET Windows
- JavaScript - JSON 数据结构的构建 - 如何使用变量值更改键名
- Javascript JSON 解析和字符串化用于多级
- 如何将数据 php 更改为 javascript json
- Javascript JSON 到 Excel 文件下载