1

我知道这已经被问过很多次了。

但老实说,经过这么多尝试,解决方案对我不起作用。

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

所以我继续尝试了很多解决方案,即使用 javascript 库、jquery 库来做到这一点。

一些工具正在转换,但附加<0>、<1> <2>等等。在执行 LoadXml 时会引发格式错误。

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

有的话请建议。

我试过这些,仅举几例:

这给了我具有 <0>、<1>、<2> 类标签的 xml。

这根本不起作用。

编辑

我删除了中间的 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>"
4

1 回答 1

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>thabo.pali@za.pwc.com</USER>
    <PASSWORD>"Monday@01</PASSWORD>
</TLOGIN>
</DATA>

问候乔治

于 2012-11-07T14:21:52.293 回答