【问题标题】:JSON to XML Conversion in C#C# 中 JSON 到 XML 的转换
【发布时间】:2012-08-02 03:25:39
【问题描述】:

我一直在使用 Json.Net 将 JSON 解析为对象并转换为 XMLDocument,但我得到了

InvalidOperationException 此文档已经有一个 'DocumentElement' 节点。

我有这个 JSON 数据:

{
   "data": [
      {
         "name": "Eros Harem",
         "id": "2345123465"
      },      
      {
         "name": "Vincent Dagpin",
         "id": "56783567245"
      },
      {
         "name": "Vrynxzent Kamote",
         "id": "3456824567"
      }
   ],
   "paging": {
      "next": "nextURLHere"
   }
}

这是我的代码

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;
using Newtonsoft.Json;

namespace JsonToXML
{
    class Program
    {
        static void Main(string[] args)
        {
            string json = File.ReadAllText("friends.json");

            // To convert JSON text contained in string json into an XML node
            XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(json);
        }
    }
}

我错过了一些设置吗?

我希望有这样的输出。

<?xml version="1.0"?>
<friends>    
    <data>
        <name>Eros Harem</name>
        <id>2345123465</id>        
    <data>
        <name>Vincent Dagpin</name>
        <id>56783567245</id>        
    </data>
    <data>
        <name>Vrynxzent Kamote</name>
        <id>3456824567</id>        
    </data>
    <paging>
        <next>nextURLHere</next>
    </paging>
</friends>

【问题讨论】:

  • 提示:您希望生成的 XML 是什么样的?另外,我很好奇你为什么要这样做。 JSON 与 XML 一样具有表现力(如果不是更多的话),那么为什么还要费心转换它呢?
  • 因为某些情况,我不知道我的 json 包含什么。我无法将其解析为任何对象类型,因为我不知道它们具有哪些属性。有意义吗?
  • 他的意思是,即使不能映射到一个对象,为什么不把它保留为json呢?

标签: c# json json.net


【解决方案1】:

我认为您需要的是 json 中的根元素。这正是 XML 所需要的。

我认为你可以做到这一点

XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(json, "friends");

【讨论】:

  • 你的意思是 XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(json); 将被初始化为有根元素?
  • 哦..我想,我只是错过了根元素的这个字符串参数..谢谢.. :)
猜你喜欢
  • 2023-03-04
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 2012-08-16
  • 2021-01-30
  • 2013-03-26
  • 2018-02-07
  • 1970-01-01
相关资源
最近更新 更多