首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何漂亮地打印Golang结构?

如何漂亮地打印Golang结构?
EN

Stack Overflow用户
提问于 2019-05-21 23:49:29
回答 2查看 11K关注 0票数 5

我正在解组一个结构,我希望它以格式化的方式打印它。

我的代码(https://play.golang.org/p/D0KwGP6Cxa0)当前生成以下输出:

代码语言:javascript
复制
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"}}}

我希望它只有名称和值,并在每个项目后有一个新行。如下所示:

代码语言:javascript
复制
Name:"Type", Value:"title"

Name:"Title", Value:"Ste Life_S01_E10_"

你知道我该怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-21 23:54:21

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

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

代码语言:javascript
复制
s, _ := json.MarshalIndent(b, "", "\t")
fmt.Print(string(s))

虽然这并不完全是您所期望的,但它会生成一个可读性很好的JSON输出:

代码语言:javascript
复制
{
    "CondensedADI": [
        {
            "Name": "Type",
            "Value": "title"
        },
        {
            "Name": "Title",
            "Value": "Ste Life_S01_E10_"
        },
        ...
票数 19
EN

Stack Overflow用户

发布于 2019-05-22 03:27:58

这可能是重复问题的重复答案,但json.MarshalIndent()的一个很好的替代方案是使用go-spew,它将为您提供更多细节和格式选项:https://github.com/davecgh/go-spew

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56242013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档