2012-11-07 130 views
1

我知道这已被问了很多次。将JSON转换为XML

但老实说,有这么多的尝试,解决方案不适合我。

因为我在ASP.Net 1.1,所以无法处理这个.net级别。

所以我使用的JavaScript库,jQuery库要做到这一点就提前尝试了许多解决方案即

一些工具被转换,但追加< 0>,< 1> < 2>等on..Which,而这样做的loadXML抛出格式错误。

我需要一个简单的函数或一个可以将JSON对象转换为XML的好库。

请建议,如果有任何。

我尝试了这些仅举几例:

This gave me the xml having <0>, <1> ,<2> sort of tags.

This Did not work at all.

编辑

我删除了中间JSON和XML数据,因为它是巨大的:

JSON

"{\"CrashTestResult\":[[\"Crash Test Note\",\"Results based on a 35 MPH frontal crash and 38.5 MPH side crash. Results are reported in a range of one to five stars, with five stars indicating the best crash protection for vehicles within \\"TIRES, P265/70R17 ALL-SEASON, BLACKWALL\",\"$0.00\"],[\"TIRES\",\"TIRES, P265/70R17 ON-/OFF-ROAD, WHITE OUTLINED-LETTER\",\"$125.00\"],[\"TIRES\",\"TIRES, P265/70R17 ON-/OFF-ROAD, BLACKWALL\",\"$150.00\"],[\"TIRES\",\"TIRES, P265/70R17 ALL-SEASON, WHITE OUTLINED-LETTER\",\"$125.00\"],[\"TIRES\",\"TIRES, P275/55R20 ALL-SEASON, BLACKWALL\",\"$0.00\"],[\"Drivetrain Years\",\"5\"],[\"Roadside Assistance Miles/km\",\"100,000\"],[\"Roadside Assistance Years\",\"5\"]],\"Wheel\":[\"WHEELS, 4 - 17\\\" X 7.5\\\" (43.2 CM X 19.1 CM) ALUMINUM, 5-SPOKE\",\"WHEELS, 4 - 17\\\" X 7.5\\\" (43.2 CM X 19.1 CM) ALUMINUM, 5-SPOKE\",\"WHEELS, 4 - 20\\\" X 8.5\\\" (50.8 CM X 21.6 CM) PAINTED ALUMINUM\"]}" 

要像XML

"<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<VINDescription xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n <CrashTestResult xmlns=\"http://autoexact.com/VINDecoder/\">\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Crash Test Note</string>\r\n  <string>Results based on a 35 MPH frontal crash and 38.5 MPH side crash. Results are reported in a range of one to five stars, with five stars indicating the best crash protection for vehicles within the same weight class. This test used driver and passenger belts and airbags.</string>\r\n </ArrayOfstring>\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Frontal Driver</string>\r\n  <string>* * * *</string>\r\n </ArrayOfstring>\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Frontal Passenger</string>\r\n  <string>* * * *</string>\r\n </ArrayOfstring>\r\n<string>$2,755.00</string>\r\n </ArrayOfstring>\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>CPOS PKG</string>\r\n  <string>28F CUSTOMER PREmas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Basic Miles/km</string>\r\n  <string>36,000</string>\r\n </ArrayOfstring>\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Basic Years</string>\r\n  <string>3</string>\r\n </ArrayOfstring>\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Corrosion Miles/km</string>\r\n  <string>100,000</string>\r\n </ArrayOfstring>\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Corrosion Years</string>\r\n  <string>5</string>\r\n </ArrayOfstring>\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Drivetrain Miles/km</string>\r\n  <string>36,000</string>\r\n </ArrayOfstring>\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Drivetrain Note</string>\r\n  <string>Unlimited Years/Unlimited Miles for vehicles sold after 07/26/2007</string>\r\n </ArrayOfstring>\r\n <ArrayOfstring xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\r\n  <string>Drivetrain Years</string>\r\n  <string>3</string>\r\n </ArrayOfstring>\r\n </Warranty>\r\n <Wheel xmlns=\"http://autoexact.com/VINDecoder/\" />\r\n</VINDescription>" 
+1

是您的XML元素名称“0”?因为XML元素不能以数字开头(所以显然它们不能是数字)。这就是为什么你得到格式错误,没有自尊的XML库应该允许它。 –

+0

不......将json转换为xml之后...库正在制作<0><1>标签类型...这就是为什么我在寻找更好的库或函数。 – James

+1

您能否提供一个源代码JSON的示例以及您希望XML的外观? –

回答

0

嗨尝试这样的事情。这对我的应用程序非常有用,但没有在它们之外使用它,所以希望它有帮助。

public string ParseJsonToXml(string sJsonObject) 
    { 
     DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(string)); 
     MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(sXMLJson)); 
     string sXMLDeSerialized = (string)ser.ReadObject(ms); 
     ms.Close(); 
     return sXMLDeSerialized; 
    } 

我把它解析为字符串命令,这样我可以将XML转换成一个数据集,反之亦然。

public DataSet ParseXmlToDataSet(string sXml) 
    {  
     DataSet ds = new DataSet(); 
     StringReader sr = new StringReader(sXml); 
     ds.ReadXml(sr); 
     return ds; 
    } 

获得的数据集的XML使用

//ds is typeof(DataSet) 
ds.GetXml(); 

注: 这是我的数据是如何处理的模样

<DATA> 
<TLOGIN> 
    <USER>[email protected]</USER> 
    <PASSWORD>"[email protected]</PASSWORD> 
</TLOGIN> 
</DATA> 

问候乔治

+0

@George ...这是最简单的方法来做到这一点..但我在ASP.NET 1.1 :( – James

+0

@Learner然后恐怕我不能帮助队友。希望你找到你的答案。 –