为了账号安全,请及时绑定邮箱和手机立即绑定

为JSON编码器/解码器“发布”了不同的结构属性

为JSON编码器/解码器“发布”了不同的结构属性

皈依舞 2021-05-07 14:19:10
我需要通过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 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

在您的具体情况下,只需解组到新结构并执行acurrentStruct.Rooms = newStruct.Rooms就是您想要的。

对于这种类型的自定义编组,还没有一种完全简单的方法。最好的选择是两个相同的结构,在不同的场合使用不同的标签,并进行一些反射以在它们之间进行转换。


查看完整回答
反对 回复 2021-05-31
  • 2 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信