- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试创建一个 API 端点来将内容保存到数据库中,但是,我通过 POST 请求传递的整数似乎没有正确解析
这是我的结构:
type OnlineTestForm struct {
Form OnlineTestSet `json:"form"`
}
type OnlineTestSet struct {
ID int `db:"id" json:"id"`
OnlineTestSubjectId int `db:"online_test_subject_id" json:"online_test_subject_id"`
Name string `db:"name" json:"name"`
ScoreToPass int `db:"score_to_pass" json:"score_to_pass"`
TimeLimit int `db:"time_limit" json:"time_limit"`
Description string `db:"description" json:"description"`
Enabled bool `db:"enabled" json:"enabled"`
Online bool `db:"online" json:"online"`
TestType string `db:"test_type" json:"test_type"`
DocName string `db:"doc_name" json:"doc_name"`
}
还有我将 JSON 解析为结构的“有问题的”函数:
func NewOnlineTest(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
var jsonForm OnlineTestForm
json.NewDecoder(r.Body).Decode(&jsonForm)
err := addNewOnlineTest(jsonForm.Form)
if err != nil {
fmt.Println(err)
w.WriteHeader(500)
fmt.Fprint(w, "{\"error\": {\"message\": \"An error occured while adding new test - "+err.Error()+"\"}}")
return
}
w.WriteHeader(200)
}
我正在使用 httprouter因为我的路由器和我发布的路由是这样定义的
router.POST("/onlinetest/new", NewOnlineTest)
最后,我发送的测试 POST 请求具有以下负载:
{
"form":{
"name":"test",
"test_type":"document",
"score_to_pass":32,
"time_limit":324,
"enabled":true,
"online":true,
"online_test_subject_id":1
}
}
当我尝试使用 jsonForm.Form' 但我传入的整数如
time_limitand
score_to_pass` 是 0 时出现问题
{0 0 test 0 0 true true document []}
最佳答案
找到了!
需要在我的 json struc 声明的末尾添加 string
,不知道为什么但它起作用了
type OnlineTestSet struct {
ID int `db:"id" json:"id"`
OnlineTestSubjectId int `db:"online_test_subject_id" json:"online_test_subject_id,string"`
Name string `db:"name" json:"name"`
ScoreToPass int `db:"score_to_pass" json:"score_to_pass,string"`
TimeLimit int `db:"time_limit" json:"time_limit,string"`
Description string `db:"description" json:"description"`
Enabled bool `db:"enabled" json:"enabled"`
Online bool `db:"online" json:"online"`
TestType string `db:"test_type" json:"test_type"`
DocName string `db:"doc_name" json:"doc_name"`
}
关于json NewDecoder 解码不解析整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41738937/
我正在尝试创建一个 API 端点来将内容保存到数据库中,但是,我通过 POST 请求传递的整数似乎没有正确解析 这是我的结构: type OnlineTestForm struct { Form
我正在尝试对 HTTP 请求进行 base64 解码,然后使用 JSON 解码器对其进行解码。 我尝试了两种实现base64解码器的方法: func decode(encoded []byte) ([
这段代码的要点在 Go 中似乎很常见: if err := json.NewDecoder(r.Body).Decode(&mr); err != nil { return mr, err }
我有一个设置了上下文截止日期的 Golang 程序。我正在发送 HTTP 请求,并希望在阅读正文时看到超出截止日期的错误。 似乎当我使用 ioutil.ReadAll 读取响应主体时,读取方法将被中断
我有一个设置了上下文截止日期的 Golang 程序。我正在发送 HTTP 请求,并希望在阅读正文时看到超出截止日期的错误。 似乎当我使用 ioutil.ReadAll 读取响应主体时,读取方法将被中断
我正在尝试从 html 响应中解码 XML。 =>我将这个响应主体作为字符串保存到一个变量中,并使用 xml.Unmarshal 函数成功解码。代码: err = xml.Unmarshal(
我正在尝试找出一种在JSON解码http.Response.Body时获取错误原因的方法 if err := json.NewDecoder(resp.Body).Decode(&lResp); er
我完全是个菜鸟,我想了解我在这里缺少什么。我期望使用 dec.Decode 循环遍历 json 值并以响应映射结束。我得到的是整个 json 字符串作为 map 第一个元素的键。我错过了什么? 示例响
我正在尝试通过在 Go 中使用 gorilla mux 库构建不同的基本 REST API 来学习后端开发(遵循 tutorial) 这是我到目前为止构建的代码: package main impor
我正在使用 the answer here从 api 获取一些 json: package main import ( "encoding/json" "fmt" "log"
这是我的结构: type Media struct { MediaID string `json:"media_id"` MediaType float64 `json:"m
我正在开发一个 API 客户端,我需要根据请求对 JSON 有效负载进行编码并从响应中解码 JSON 正文。 我已经阅读了几个库的源代码,根据我所见,我基本上有两种可能对 JSON 字符串
I'm currently learning Go and have built a small API in which I search for and summarize data fro
我按照本网站上的示例编写了一些代码来解析大型 XML 文件 (>3GB):https://blog.singleton.io/posts/2012-06-19-parsing-huge-xml-fil
来自 PHP,我是这里的 Golang 新手。我读到一个与我的问题非常相似的问题,但我的实现略有偏差。每当我使用以下代码进行解码时,变量 msg.Username 始终为空。 Golang 不会在这里
我是一名优秀的程序员,十分优秀!