douya7309 2014-02-23 17:38
浏览 344
已采纳

Golang Json.Marshal错误

I have been trying to encode a map into JSON but I have been unsuccessful so far. Json.Marshal is not encoding value, its just encoding the key.

https://gist.github.com/rahulpache/9174490

package main 
import (
    "encoding/json"
    "fmt"
)
type node struct {
    value   string
    expiry  float64
    settime float64
}

func main() {
    var x = make(map[string]node)

    x["hello"] = node{value: "world", expiry: 1, settime: 2}
    x["foo"] = node{value: "bar", expiry: 1, settime: 2}

    a, err := json.Marshal(x)
    fmt.Println(string(a))
}

Output:

{"foo":{},"hello":{}}
  • 写回答

1条回答 默认 最新

  • douxia9826 2014-02-23 18:01
    关注

    Your properties and the type name are private, if you want your properties to be public you need to follow the convention of capitalizing each word e.g. (Value instead of value) to make it public, switch your type to this and it should serialize just fine.

    type Node struct {
        Value   string
        Expiry  float64
        Settime float64
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?