(don't ?)在c#中使用JavaScriptSerializer将xml文件(未知模式)转换为json

本文关键字:JavaScriptSerializer xml 文件 未知 json 转换 模式 don | 更新日期: 2023-09-27 18:02:47

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

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

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

说明一下:我不关心是否将xml转换为对象。如果可以的话,我宁愿避开它。XML => Json比XML => objects => Json更让我满意。

但是每个人都告诉不要重复使用JavaScriptSerializer。但我不觉得这是正确的选择。从xml中设置对象看起来是一项可怕的任务(强类型)。

我的问题是:

我应该继续使用http://www.phdcc.com/xml2json.htm

中描述的快速(但"脏")方法吗?

我可以使用JavascriptSerializer,即使我不知道xml的模式?如果是,请填写空白/修改以下代码

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());

(don't ?)在c#中使用JavaScriptSerializer将xml文件(未知模式)转换为json

我认为你可以使用json.net来接收一个未知的xml到json对象:

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"
//      }
//    ]
//  }
//}
相关文章:
  • 没有找到相关文章