我需要通过JSON导出一些大型结构,并取回JSON字符串以仅更新其某些属性。让我们有以下结构:type House struct { Name string `json:"name"` Rooms int `json:"rooms_count"` Owner *Owner `json:"-"`}使用进行编码encoding/json将产生JSON字符串,例如{"name":"some name", "rooms_count":5}我现在得到以下JSON字符串:{"name":"some other name", "rooms_count":7, Owner:{something...}}用户想要更改每个属性。Owner不允许,因为它没有被导出。但是我只想允许更改rooms_count。有什么说法可以将某些属性与一起导出Encoder,但不能由导出Decoder?必须手动编写所有这些检查会非常不愉快。
2 回答
![?](http://img1.sycdn.imooc.com/545845b40001de9902200220-100-100.jpg)
偶然的你
TA贡献1841条经验 获得超3个赞
在您的具体情况下,只需解组到新结构并执行acurrentStruct.Rooms = newStruct.Rooms
就是您想要的。
对于这种类型的自定义编组,还没有一种完全简单的方法。最好的选择是两个相同的结构,在不同的场合使用不同的标签,并进行一些反射以在它们之间进行转换。
添加回答
举报
0/150
提交
取消