繁体   English   中英

json忽略标签(“-”)在嵌入式子结构上不起作用

[英]json ignore tag (“-”) not working on embedded sub structure

我一直在阅读许多相关的问题,但找不到真正适合我问题的内容。 我试图解组一个复杂的对象。

type DC struct {

    //other fields
    ReplenishmentData map[string]ProductReplenishment `bson:"-"`
    //other fields
}

type ProductReplenishment struct {
    //Other fields
    SafetyStockInDay int `json:"SafetyStockInDay" bson:"SafetyStockInDay"`
    AlreadyOrderedQuantityForReplenishment *map[float64]*UnitQuantity `json:"-" bson:"-"`
    //Other fields
}

可以说我解码以下json:

{
  "ReplenishmentData": {
    "000822-099": {
      "SafetyStockInDay": 7
    },
    "001030-001": {
      "SafetyStockInDay": 7
    }
  }
}

进入一个结构实例层次结构,其中AlreadyOrderedQuantityForReplenishment不为空,在解码后将该字段设置为和空映射,覆盖初始值。

为什么解码器不按文档中的说明一起忽略该字段? 我想念什么吗?

非常感谢您的帮助,

如果可以,在(第一)之前(第二)之后添加检查器的屏幕截图

之前 后

您的问题与嵌入式结构无关-常规结构也会发生相同的问题。

编码器将跳过标记有标签限定符"-"编码结构字段。 解码器在初始化结构时,会将零值用于未通过解码过程初始化的任何字段。 因此,您的地图将被初始化为nil(空)地图。

如果您想保留设置,则需要编写自己的(JSON或BSON)封送处理程序(可行-但不平凡)。 或者,在解码过程之后仅恢复任何零值可能更简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM