(不要?)使用JavaScriptSerializer在C#中将(未知模式的)xml文件转换为json. [英] (don't ?) use JavaScriptSerializer to convert xml file (of unknown schema) to json in c#

查看:132
本文介绍了(不要?)使用JavaScriptSerializer在C#中将(未知模式的)xml文件转换为json.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

JavascriptSerializer是将未知文件的xml文件转换为json字符串的工具"吗?

Is JavascriptSerializer the "tool" to convert an xml file (of unknown schema) into a json string ?

这里有一些线程讨论如何在C#中将xml转换为json. 以及一些推荐的专用解决方案(http://www.phdcc.com/xml2json.htm)

There are some threads here dealing about how to convert xml to json in c#. And some recommended dedicated solutions (http://www.phdcc.com/xml2json.htm)

但是在那些线程中,总是有一个建议使用JavaScriptSerializer.但是,关于如何做到这一点从来没有明确的解释.人们总是躲避它,或者以一个对象而不是xml开头.

But in those threads there are always one suggesting using JavaScriptSerializer. But there is never clear explanation on how to do it. One always elude it or start with an object instead of an xml.

要明确说明: 我不希望将我的xml转换为对象. 如果可以的话,我宁愿避免这种情况. XML => Json比XML => objects => Json更让我满意.

To make it clear : I don't look after having my xml turned into objects. If I can, I'd prefer to avoid it. XML => Json would please me more than XML => objects => Json.

但是每个人都在告诉不要重新发明轮子使用JavaScriptSerializer.但是我不觉得这是要走的路.从xml设置对象看起来像是一件艰巨的任务(强烈键入).

But everybody is telling don't reinvent wheel use JavaScriptSerializer. But I don't feel like this is the way to go. Setting up objects from xml looks like a terrible task (strongly typing).

所以我的问题是:

我应该使用 http://www.phdcc中描述的快速(但肮脏")方法.com/xml2json.htm

即使我不知道xml的架构,我也可以使用JavascriptSerializer吗? 如果是这样,请填补空白/修改以下代码

Could I use JavascriptSerializer even if I don't know the schema of the xml ? If so please fill in the gaps/modify the following code

namespace ExtensionMethods {  
    public static class JSONHelper     
    {
        public static string ToJSON(this XmlDocument doc)
        {  
            object obj = get_An_Object_From_My_XML_Without_Too_Much_Hassle_Like_Having_To_Deal_With_Strongly_Type(doc); // how to do that ???            
            JavaScriptSerializer serializer = new JavaScriptSerializer(); 
            return serializer.Serialize(obj);
        }    
    }   
}

using ExtensionMethods; 
...
XmlDocument mydoc = new XmlDocument(@"c:\test.xml");
Response.write(mydoc.ToJSON());

推荐答案

我认为您可以使用json.net以便将未知的xml接收到json对象中:

I think you could use json.net in order to receive a unknown xml into a json object:

string xml = @"<?xml version=""1.0"" standalone=""no""?>
<root>
  <person id=""1"">
  <name>Alan</name>
  <url>http://www.google.com</url>
  </person>
  <person id=""2"">
  <name>Louis</name>
  <url>http://www.yahoo.com</url>
  </person>
</root>";

XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);

string jsonText = JsonConvert.SerializeXmlNode(doc);
//{
//  "?xml": {
//    "@version": "1.0",
//    "@standalone": "no"
//  },
//  "root": {
//    "person": [
//      {
//        "@id": "1",
//        "name": "Alan",
//        "url": "http://www.google.com"
//      },
//      {
//        "@id": "2",
//        "name": "Louis",
//        "url": "http://www.yahoo.com"
//      }
//    ]
//  }
//}

这篇关于(不要?)使用JavaScriptSerializer在C#中将(未知模式的)xml文件转换为json.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆