为什么json值为空

问题描述 投票:-2回答:1

你能看出为什么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":""}
go
1个回答
0
投票

您将文档解组为UsedInContext类型,同时它与ContextData的架构匹配:

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

var data ContextData
json.Unmarshal(jsonBlob, &data)
fmt.Printf("%+v", data)
© www.soinside.com 2019 - 2024. All rights reserved.