首页 > 解决方案 > 将 XML 响应转换为 Json 时出错

问题描述

目标是将 XML 响应转换为 JSON。我正在访问一个返回 XML 数据的 API 端点。我收到数据,将其转换为 json 字符串,但是当我尝试反序列化 json 字符串时,它会抛出异常

阅读完 JSON 内容后遇到的附加文本::. 路径'',第 1 行,位置 6

public string GetSaveData(string url)
    {
        try
        {
            using (WebClient client = new WebClient())
            {
                var response = client.DownloadString(url);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(response);
                var json = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None, true);
                var transactObject1 = JsonConvert.DeserializeObject(json); **//Exception is thrown at this line**
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return "success";
    }              

在 transactObject1 处引发异常。

标签: c#asp.netjsonxml

解决方案


因此,我通过删除声明导致 json 字符串格式错误的 XML 文档的起始标记找到了解决方案。

 public string GetSaveData(string url)
    {
        try
        {
            using (WebClient client = new WebClient())
            {
                var response = client.DownloadString(url);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(response);
                foreach (XmlNode node in doc)
                {
                    if (node.NodeType == XmlNodeType.XmlDeclaration)
                    {
                        doc.RemoveChild(node);
                    }
                }
                var json = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None, true);
                var transactObject1 = JsonConvert.DeserializeObject(json);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return "success";
    }

推荐阅读