如何使用正确的JSON结构将XML内容发布到WEB API?

时间:2013-12-30 21:53:57

标签: xml json asp.net-web-api

我使用WEB API通过将整个内容作为字符串传递来POST一个XML文件的内容。 但是我收到错误,现在我想知道如何传递这个XML字符串?逃避斜线,没有双引号等....

以下是我(不正确的)JSON结构的一个小例子:

{"xml":"
<server>
  <networkAdapters>
    <networkAdapter id="3d9c0d9d-d353-4d78-b034-b29f2dd824a0" ipEnabled="true">
      <defaultGateways>
        <defaultGateway address="x.x.x.x" costMetric="20" index="0" />
      </defaultGateways>
      <ipAddresses>
        <ipAddress address="x.x.x.x" subnetMask="255.255.255.192" index="0" />
      </ipAddresses>
      <dnsServers>
        <dnsServer address="x.x.x.x" index="0" />
        <dnsServer address="x.x.x.x" index="1" />
      </dnsServers>
    </networkAdapter>
</server>"}

WEB API代码:

        //POST api/RunningValue_Import
        public object PostRunningValue(param_RunningValue inputData)
        {
            try
            {
                #region Retrieve XML string and Create XDocument
                TextReader tr = new StringReader(inputData.xml);
                XDocument doc = XDocument.Load(tr);
                #endregion
...

我试图找出在将整个XML内容发布到我的WEB API之前需要做些什么。

有什么想法吗? 谢谢

2 个答案:

答案 0 :(得分:1)

你需要在xml字符串中转义双引号,如下所示:

<dnsServer address=\"x.x.x.x\" index=\"0\" />

此外,您的xml格式不正确,您尚未包含结尾</networkAdapters> 标签

答案 1 :(得分:0)

为什么不直接删除JSON包装器并直接发送XML?

public HttpResponseMessage Post(XElement xElement)
{

...

}