【问题标题】:XML equivalent for a JSON input in Web APIWeb API 中 JSON 输入的 XML 等效项
【发布时间】:2015-08-10 15:34:22
【问题描述】:

我有以下 JSON 结构,这是我的 Web API 的输入

{
    field1: "value1",
    field2: [
        { field2_1: "aaaa", field2_2: "bbbb", field2_3: "cccc" }
    ],
    field3: []
}

我调用的 API 支持 JSON 和 XML。 如果我想通过发送 XML 而不是 json 来调用相同的 api,我应该如何在 XML 中转换这个结构?

【问题讨论】:

  • 我猜你可以通过 JSON 反序列化和 XML 序列化来实现这一点。
  • 你的 web api 没有帮助页面吗?这显示了一个例子。您的客户端使用 HttpClient 吗?有 XML 或 Json 选项。
  • @AndyWiesendanger:我很抱歉,但不是。 Web API 没有帮助页面。
  • @GuillaumeBeauvois:你什么意思?您能否进一步解释您的建议?
  • 如何使用 Json 进行调用?

标签: c# json xml asp.net-web-api2 mediatypeformatter


【解决方案1】:

您需要参考 WebAPI 来确定这一点。我假设您需要某种类型的根元素。但这是我将如何格式化它:

<root>
   <field1>value1</field1>
   <field2>
      <element>
         <field2_1>aaaa</field2_1>
         <field2_2>bbbb</field2_2>
         <field2_3>cccc</field2_3>
      </element>
      <element>
         <field2_1>aaaa</field2_1>
         <field2_2>bbbb</field2_2>
         <field2_3>cccc</field2_3>
      </element>
   </field2>
   <field3 />
</root>

<root>
   <field1>value1</field1>
   <elements>
      <field2>
         <field2_1>aaaa</field2_1>
         <field2_2>bbbb</field2_2>
         <field2_3>cccc</field2_3>
      </field2>
      <field2>
         <field2_1>aaaa</field2_1>
         <field2_2>bbbb</field2_2>
         <field2_3>cccc</field2_3>
      </field2>
   </elements>
   <field3 />
</root>

【讨论】:

  • 好吧。这正是我正在尝试的方式。然而主要问题是 field2 是一个数组,我不知道它是如何表示的。例如,在您的建议中,您将如何表示一个包含多个元素的 field2 数组?
  • 您需要定义元素数组,或者将每个 field2 包装在它自己的元素名称中。请查看我的编辑。
  • 很遗憾,这不是我的 Web API。在 API 提供者网站上,所有示例都是 JSON 格式,他们说他们的代码也适用于 XML。所以我不能定义任何元素
  • 好吧,没有更多信息,这个问题很难解决。也许您可以发布 JSON 示例或 API 链接,以便我们查看。
  • 同意。如果他们不告诉您 XML 结构是什么,就很难猜到。你能在 XML 中获得类似的结构吗?可能相同的结构用于 Get 和 POST/PUT。
猜你喜欢
  • 2013-08-15
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-13
  • 1970-01-01
  • 2013-02-27
  • 2010-12-09
相关资源
最近更新 更多