为什么JSON值是空的

时间:2018-08-31 13:27:44

标签: go

您能看到为什么不保存json值的原因吗?

更新:如果您想解释为什么将其降级为“非主题”?

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
)

type UsedInContext struct {
    UsedIn      string `json:"usedin"`
    ContextName string `json:"contextname"`
}

type ContextData struct {
    usedInContext []UsedInContext `json:"usedincontext"`
}

func saveData() {

    var jsonBlob = []byte(`{
        "usedincontext": 
        [
            {"usedin":"local", "contextname":"desktop"}
        ]
    }`)

    usedInContext := UsedInContext{}
    err := json.Unmarshal(jsonBlob, &usedInContext)
    if err != nil {
    }

    usedInContextJson, _ := json.Marshal(usedInContext)
    err = ioutil.WriteFile("data.json", usedInContextJson, 0644)
    fmt.Printf("%+v", usedInContext)
}

我得到以下信息:

{"usedin":"","contextname":""}

1 个答案:

答案 0 :(得分:0)

在与UsedInContext的模式匹配的情况下,将文档解组为ContextData类型:

type ContextData struct {
    UsedInContext []UsedInContext `json:"usedincontext"` // exported
}

var data ContextData
json.Unmarshal(jsonBlob, &data)
fmt.Printf("%+v", data)