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

如何漂亮地打印一个 Golang 结构?

如何漂亮地打印一个 Golang 结构?

Go
慕森王 2023-06-19 15:46:19
我正在解组一个结构,我希望它以格式化的方式打印它。我的代码 ( https://play.golang.org/p/D0KwGP6Cxa0 ) 当前产生以下输出:main.ADIStruct{CondensedADI:[]main.CondensedADI{main.CondensedADI{Name:"Type", Value:"title"}, main.CondensedADI{Name:"Title", Value:"Ste Life_S01_E10_"}, main.CondensedADI{Name:"Title_Brief", Value:"Ste Life_S01_E10_HD"}, main.CondensedADI{Name:"Episode_Name", Value:"Cody Goes to Camp"}, main.CondensedADI{Name:"Episode_ID", Value:"10"}, main.CondensedADI{Name:"Summary_Short", Value:"Zack is excited to finally get rid of his brother when Cody leaves for math camp."}, main.CondensedADI{Name:"Rating", Value:"TV-G"}, main.CondensedADI{Name:"Run_Time", Value:"00:22:50"}, main.CondensedADI{Name:"Display_Run_Time", Value:"00:23"}, main.CondensedADI{Name:"Year", Value:"2005"}, main.CondensedADI{Name:"Closed_Captioning", Value:"Y"}, main.CondensedADI{Name:"Genre", Value:"Family"}, main.CondensedADI{Name:"Billing_ID", Value:"00000"}, main.CondensedADI{Name:"Actors_Display", Value:"Ashley Tisdale ( Maddie ), Brenda Song ( London ), Cole Sprouse ( Cody ), Dylan Sprouse ( Zack ), Kim Rhodes ( Carey ), Phill Lewis ( Moseby )"}, main.CondensedADI{Name:"Licensing_Window_Start", Value:"2019-05-15 00:00:00"}, main.CondensedADI{Name:"Licensing_Window_End", Value:"2019-10-31 00:00:00"}, main.CondensedADI{Name:"Preview_Period", Value:"0"}, main.CondensedADI{Name:"Display_As_New", Value:"7"}, main.CondensedADI{Name:"Display_As_Last_Chance", Value:"7"}, main.CondensedADI{Name:"Provider_QA_Contact", Value:"DATG.DL-VOD.Support@disney.com"}, main.CondensedADI{Name:"Suggested_Price", Value:"0.00"}, main.CondensedADI{Name:"Category", Value:"Disney Channel HD/Suite Life"}}}我希望它只有名称和值,并且在每个项目之后都有一个新行。像这样:Name:"Type", Value:"title" Name:"Title", Value:"Ste Life_S01_E10_"任何想法我怎么能做到这一点?
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

Go 标准库中有一个函数获取interface{}并生成缩进的 JSON 输出:json.MarshalIndent.

这是一个如何将其应用于您的用例的示例(https://play.golang.org/p/3geUEEHESSa):

s, _ := json.MarshalIndent(b, "", "\t")
fmt.Print(string(s))

虽然不完全符合您的预期,但这会产生一个非常可读的 JSON 输出:

{

    "CondensedADI": [

        {

            "Name": "Type",

            "Value": "title"

        },

        {

            "Name": "Title",

            "Value": "Ste Life_S01_E10_"

        },

        ...


查看完整回答
反对 回复 2023-06-19
  • 1 回答
  • 0 关注
  • 57 浏览
慕课专栏
更多

添加回答

举报

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