相关疑难解决方法(0)

json.Marshal(struct)返回"{}"

type TestObject struct {
    kind string `json:"kind"`
    id   string `json:"id, omitempty"`
    name  string `json:"name"`
    email string `json:"email"`
}

func TestCreateSingleItemResponse(t *testing.T) {
    testObject := new(TestObject)
    testObject.kind = "TestObject"
    testObject.id = "f73h5jf8"
    testObject.name = "Yuri Gagarin"
    testObject.email = "Yuri.Gagarin@Vostok.com"

    fmt.Println(testObject)

    b, err := json.Marshal(testObject)

    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(string(b[:]))
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

[ `go test -test.run="^TestCreateSingleItemResponse$"` | done: 2.195666095s ]
    {TestObject f73h5jf8 Yuri Gagarin Yuri.Gagarin@Vostok.com}
    {}
    PASS
Run Code Online (Sandbox Code Playgroud)

为什么JSON基本上是空的?

json marshalling go

112
推荐指数
3
解决办法
3万
查看次数

(联合国)编组json golang不工作

我正在玩Go并且难以理解为什么json编码和解码对我不起作用

我想我几乎逐字地复制了这些例子,但是输出结果表明编组和解组都没有返回任何数据.他们也没有给出错误.

任何人都可以暗示我哪里出错了?

我的示例代码:去游乐场

package main

import "fmt"
import  "encoding/json"

type testStruct struct {
    clip string `json:"clip"`
}

func main() {
//unmarshal test
    var testJson = "{\"clip\":\"test\"}"
    var t testStruct
    var jsonData = []byte(testJson)
    err := json.Unmarshal(jsonData, &t)
    if err != nil {
        fmt.Printf("There was an error decoding the json. err = %s", err)
        return
    }
    fmt.Printf("contents of decoded json is: %#v\r\n", t)

//marshal test
    t.clip = "test2"
    data, err := json.Marshal(&t)
    if err != nil {
         fmt.Printf("There was …
Run Code Online (Sandbox Code Playgroud)

json go

14
推荐指数
2
解决办法
9605
查看次数

标签 统计

go ×2

json ×2

marshalling ×1