go - 为什么json值是空的
问题描述
你能明白为什么 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":""}
解决方案
您将文档解组为 type UsedInContext
,而它与以下架构匹配ContextData
:
type ContextData struct {
UsedInContext []UsedInContext `json:"usedincontext"` // exported
}
var data ContextData
json.Unmarshal(jsonBlob, &data)
fmt.Printf("%+v", data)
推荐阅读
- javascript - 通过 Angularjs 的大文件附件
- java - 确定排序中比较次数的公式?
- javascript - 从 php 中动态创建的文本框获取文本框值
- php - 致命错误:未找到接口“Psr\Container\ContainerInterface”
- c - 为什么在打印字符串时会出现分段错误(核心转储)?
- wordpress - Wordpress meta_query 不返回结果
- json - Instagram 个人资料图片访问被拒绝
- regex - 可以使用 PowerShell -match 运算符来测试版本字符串吗?
- javascript - Ext-react 破坏了 React Router和
成分 - express - 如何将图像从 React Native 上传到 Express 服务器?