JavascriptSerializer 是将 xml 文件(未知模式)转换为 json 字符串的“工具”吗?
这里有一些线程讨论如何在 C# 中将 xml 转换为 json。
以及一些推荐的专用解决方案(http://www.phdcc.com/xml2json.htm)
但在这些线程中总是有人建议使用 JavaScriptSerializer。但对于如何做到这一点从来没有明确的解释。人们总是逃避它或者从一个对象而不是 xml 开始。
为了说清楚:
我不关心将我的 xml 变成对象。
如果可以的话,我宁愿避免它。
XML => Json 比 XML => 对象 => Json 更让我满意。
但每个人都告诉我们不要使用 JavaScriptSerializer 重新发明轮子。但我不认为这是正确的出路。从 xml 设置对象看起来是一项可怕的任务(强类型)。
所以我的问题是:
我应该继续使用中描述的快速(但“肮脏”)方法吗?http://www.phdcc.com/xml2json.htm http://www.phdcc.com/xml2json.htm
Or
即使我不知道 xml 的架构,我也可以使用 JavascriptSerializer 吗?
如果是,请填写空白/修改以下代码
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 对象中:
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"
// }
// ]
// }
//}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)