How to convert XML data into JSON data in Go?

huangapple go评论86阅读模式
英文:

How to convert XML data into JSON data in Go?

问题

我想在Go中从XML文档创建JSON对象。目前我正在使用xml.Unmarshal函数将XML数据获取到结构体对象中,然后使用fmt.Sprintf函数以编程方式格式化一个JSON结构的字符串。

这段代码不易读,我觉得应该有更好的方法来实现。有人能否提供更好的建议呢?

我的当前代码是:

var root Root
_ = xml.Unmarshal(data, &root)

fmt.Fprintln(w, fmt.Sprintf("{\"type\": \"%s\", \"action\": \"save\", \"entry\": {\"ads_enabled\": 1, \"comments_enabled\": 0, \"cover_headline\": \"%s\", }}",
			root.Type,
			root.SeoHeadline, //coverheadline			))

type Root struct {
    Type                 string `xml:"type,attr" json:"type"`
    CoverHeadline        string `xml:"Head>PageHeadline>p" json:"cover_headline"`
}

其中data是byte[]对象

谢谢

英文:

I want to create JSON object from a XML document in Go. Right now what I am doing is getting the XML data in struct object using xml.Unmarshall function and then programmatically format a string in JSON structure using fmt.Sprintf function.

This code is not readable and I feel some better way should be there to do it. Can someone please suggest something better.

My current code is

var root Root
_ = xml.Unmarshal(data, &root)

fmt.Fprintln(w, fmt.Sprintf("{\"type\": \"%s\", \"action\": \"save\", \"entry\": {\"ads_enabled\": 1, \"comments_enabled\": 0, \"cover_headline\": \"%s\", }}",
			root.Type,
			root.SeoHeadline, //coverheadline			))

type Root struct {
    Type                 string `xml:"type,attr"	json:"type"`
    CoverHeadline        string `xml:"Head>PageHeadline>p" json:"cover_headline"`
}

where data is byte[] object

Thanks

答案1

得分: 2

使用以下代码导入包和函数:

import "encoding/json"

使用json.Marshal函数进行JSON编码。你可以在以下链接中找到有关该函数的更多信息:

http://golang.org/pkg/encoding/json/#Marshal

你还可以在以下链接中找到有关使用JSON的示例:

https://gobyexample.com/json

英文:

use

import "encoding/json"

and the function

json.Marshal

http://golang.org/pkg/encoding/json/#Marshal

https://gobyexample.com/json

huangapple
  • 本文由 发表于 2015年5月2日 15:43:42
  • 转载请务必保留本文链接:https://go.coder-hub.com/29999736.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定