去库以映射json键以清理输出

时间:2018-05-25 09:09:30

标签: json go

是否有任何Go库可以在将Json输出发送给用户之前对其进行整理?

我们可以解组成一个结构并手动执行,但是我们想知道是否有任何库可以更容易地将键提取到结构中,我们可以将其发送给用户?

1 个答案:

答案 0 :(得分:1)

简短的回答并不是真的,因为Go处理JSON编组和取消编组的方式。处理用例的常见模式只是定义Response结构。

一个典型的例子如下:

type User struct {
   // fields
}

// Response type used when the user is asking about their own fields
type PrivateUserResponse struct {
   // fields with struct tags
}

func (u *User) ToPrivateUserResponse() *PrivateUserResponse { ... } 

// Response type used when the user is being listed in a public directory
type PublicUserResponse struct {
    // fields with struct tags
}

func (u *User) ToPublicUserResponse() *PublicUserResponse { ... } 

由于JSON键配置由struct标签处理,因此库不适合处理在处理此问题时出现的唯一业务逻辑案例。您可能能够找到以更通用的方式解决此问题的代码生成器,但我建议您自己编写结构 - Go有利于明确和清晰的行为。