当前位置: 首页 > 面试题库 >

如何在Golang中将[] byte XML转换为JSON输出

葛兴发
2023-03-14
问题内容

有没有办法在Golang中将XML([] byte)转换为JSON输出?

我有下面的功能在哪里body[]byte但我想经过一些操作后将此XML响应转换为JSON。我已经尝试Unmarshalxml打包但没有成功:

// POST 
func (u *UserResource) authenticateUser(request *restful.Request, response *restful.Response) {
    App := new(Api)
    App.url = "http://api.com/api"
    usr := new(User)
    err := request.ReadEntity(usr)
    if err != nil {
        response.AddHeader("Content-Type", "application/json")
        response.WriteErrorString(http.StatusInternalServerError, err.Error())
        return
    }

    buf := []byte("<app version=\"1.0\"><request>1111</request></app>")
    r, err := http.Post(App.url, "text/plain", bytes.NewBuffer(buf))
    if err != nil {
        response.AddHeader("Content-Type", "application/json")
        response.WriteErrorString(http.StatusInternalServerError, err.Error())
        return
    }
    defer r.Body.Close()
    body, err := ioutil.ReadAll(r.Body)
    response.AddHeader("Content-Type", "application/json")
    response.WriteHeader(http.StatusCreated)
//  err = xml.Unmarshal(body, &usr)
//  if err != nil {
//      fmt.Printf("error: %v", err)
//      return
//  }
    response.Write(body)
//  fmt.Print(&usr.userName)
}

我也在使用Go-restful软件包


问题答案:

如果需要使用未知结构将XML文档转换为JSON,则可以使用goxml2json。

范例:

import (
  // Other imports ...
  xj "github.com/basgys/goxml2json"
)

func (u *UserResource) authenticateUser(request *restful.Request, response *restful.Response) {
  // Extract data from restful.Request
  xml := strings.NewReader(`<?xml version="1.0" encoding="UTF-8"?><app version="1.0"><request>1111</request></app>`)

  // Convert
    json, err := xj.Convert(xml)
    if err != nil {
        // Oops...
    }

  // ... Use JSON ...
}

注意:我是该库的作者。



 类似资料:
  • 问题内容: 以下是我的json文件输入 码 输出量 因此,在这里我确实得到了答案,但是没有打印一次,而是打印了7次。如何解决此问题。 问题答案: 是一个字典,您不需要对其进行迭代。您可以使用键直接访问值。 例如:

  • 问题内容: 我想将json字符串转换为javascript中的yaml格式。我从过去两天开始尝试在Google上找到任何解决方案或库。有适用于Java的答案,但不适用于javascript。 假设我有这样的json字符串: 转换为yaml: 有一个在线转换器http://www.json2yaml.com/,但是如何在javascript中转换成它。 问题答案: YAML是JSON的超集。由于任何

  • 问题内容: 我正在App Engine上进行一些工作,我需要将从远程服务器检索到的XML文档转换为等效的JSON对象。 我用来解析由返回的XML数据。我还尝试使用将已解析的XML文档转换为JSON。我对如何将两者钩在一起完全不知所措。以下是我要修改的代码: 问题答案: Soviut对于lxml objectify的建议是好的。使用特殊子类化的simplejson,您可以将lxml对象化结果转换为j

  • 问题内容: 我对编程非常陌生,过去3/4星期一直在学习python,这是给出的作业之一。 输入项 输出量 我一直在尝试代码为: 此代码的输出如下: 谁可以帮我这个事? 问题答案: 处理完整行后转储。

  • 问题内容: 我只想使用Java将包含yaml的字符串转换为包含对应的已转换json的另一个字符串。 例如,假设我拥有此Yaml的内容 在名为yamlDoc的字符串中: 我想要一些可以将yaml字符串转换为带有相应json的另一个字符串的方法,即以下代码 应该打印: 我想知道在此示例中是否存在类似于 convertToJson() 方法的内容。 我试图使用SnakeYAML实现这一点,所以这段代码

  • 问题内容: 如何在Java中将通用列表转换为json。我有这样的类.. 我想将outputList转换为Java中的json。转换后我会将其发送到客户端。 问题答案: 为此使用GSON库。这是示例代码 这是Gson的Maven依赖 或者您可以从此处直接下载jar并将其放在您的课​​程路径中 http://code.google.com/p/google- gson/downloads/detail