繁体   English   中英

通过模板将通用 JSON 转换为 XML

Generic JSON to XML transformation by templating

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试设计一种服务来将通用 JSON 数据表示形式转换为 XML 数据表示形式。 我想到的第一个想法(以及我在互联网上发现的)利用了 Go 模板实用程序。

如果我有一个像下面这样的 JSON 数据表示:

{
  "user": {
     "name": "Luca",
     "surname": "Rossi"
  }
} 

我可以设计一个如下的模板:

<xml>
  <user name="{{.user.name}}" surname="{{.user.surname}}" />
</xml>

生成:

<xml>
   <user name="Luca" surname="Rossi" />
</xml>

问题是:Go 需要定义一个结构体,该结构体声明如何编组和解组 JSON 数据表示; 然而,与此同时,我想提供模板来生成 XML 作为运行时可用的服务配置。

问题是:“有可能吗”? 我知道(由于这个问题)我可以做这样的事情:

var anyJson map[string]interface{}
json.Unmarshal(bytes, &anyJson)

当我必须访问值时,问题就出现了:我会被要求做一个类型断言,比如

anyJson["id"].(string)

现在,我也许可以通过 JSON 模式知道 anyJson["id"] 的类型,但我不知道我是否可以做一个参数类型断言,比如

anyJson["id"].(typeForIDFromJSONSchema)
1 个回复

当您解组到map[string]interface{} ,每个嵌套的 JSON 对象也将是map[string]interface{} 因此,包含元素的类型断言到string通常可能有效,但不适用于任何struct类型 - 解组器将始终不知道您的结构。

所以我建议的两个选项是

  • 使用类型切换和类型断言来“艰难地”做到这一点 - 这是可行且快速的,但并不是那么好;
  • 使用不同的工具,例如jsonitergjson - 这些可能会慢一点,但它们确实允许您遍历任意 JSON 图

我使用过 GJson 和 Jsoniter。 GJson 通过输入逐字节读取,使用缓冲来保持其速度,提供允许检查当前元素和断言以转换值的 API。

Jsoniter 在我看来像是 Java 中成功解析器的一个更清晰的实现,但我还没有使用它以这种方式进行解析。 (它也可以简单地用作标准 Go encoding/json的快速替代品。)我建议你专注于使用它的Iterator和它的WhatIsNext方法。

1 如何使用速度模板将xml转换为Json?

我有一个Apache骆驼应用程序,它在其余服务和Web服务之间进行中介。 休息服务是呼叫者,Web服务是后端。 我已经取得了进展,直到可以从Web服务获得响应并将其转换为xml。 现在,我必须以特定格式(例如,加上一些其他事务和会话ID)将JSON响应发送给调用者,以从xml中提取数据。 ...

3 将XML转换为通用列表

我正在尝试将XML转换为List 我使用LINQ尝试了几件事,但在进行过程中不清楚。 正在计数2,但值类似于2dummy12 3dummy11 是否可以将上述XML转换为具有Id,Name和Section属性的Student类型的通用List? 实现此目的的最佳方法是 ...

4 从JSON转换为XML

我在这里看到了许多有关从XML转换为JSON的文章,最近我写了一个程序来做,但是我也很好奇您将如何从JSON转换为XML? 样本JSON: 我不确定这是否对您有用,但是我将JSON发布到XML程序中。 ...

5 如何从 JSON 转换为 XML

我需要使用这个库将一些 JSON 转换为 XML,我需要这样做以便在我正在处理的发布请求中将一些数据发送到数据库。 这就是req.body返回的内容 是动态数据。 让我给你看代码 这是用于mssql 模块的存储过程方法。 正如你看到上面的代码,有一个失败错误,因为在request.inp ...

6 将 XML 转换为 JSON

我正在尝试将 XML 文件转换为String类型的内部表。 是否有将 XML 数据转换为 JSON 格式的功能模块? ...

7 转换为xml到json

我正在使用xml2json模块将XML有效负载转换为JSON,但是我看到了以下内容 如果我有以下内容 obj [“ Stat”]被拾取为空{}而不是空的“” 。 编辑让我们有一个嵌套的xml结构 ...

8 将JSON转换为XML

我知道这已经被问过很多次了。 但老实说,经过这么多尝试,这些解决方案对我而言并不奏效。 由于我在ASP.Net 1.1中工作,因此无法处理此.net级别。 所以我继续尝试了许多解决方案,即使用javascript库,jquery库来做到这一点。 某些工具正在转换,但是附加 ...

9 将JSON转换为XML

我试图将JSON输出转换为XML。 不幸的是我收到此错误: JSON根对象具有多个属性。 根对象必须具有单个属性才能创建有效的XML文档。 考虑指定DeserializeRootElementName。 这就是我现在所创造的。 这是我的JSON输出: 我怎 ...

10 XML转换为JSON

我正在尝试返回JSON,但是问题是在JSON的客户端,值“ 001”之一被接收为“ 1”。 我在这里做错什么了吗? 在Fiddler中,“ TextView”显示正确的答案,但JSON不显示。 这是代码: ...

2014-01-04 14:42:50 1 126   c#/ json
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM