【Java123】XML与JSON互相转化
?http://www.bejson.com/json2javapojo/new/ https://www.cnblogs.com/111testing/p/9162229.html https://wenku.baidu.com/view/8364d04b86c24028915f804d2b160b4e777f8102.html https://www.jianshu.com/p/8dadd9a232b1 ? ? 一个使用org.json的Demo: 1 import org.apache.commons.io.IOUtils; 2 import org.json.JSONException; 3 import org.json.JSONObject; 4 import org.json.XML; 5 6 import java.io.IOException; 7 import java.io.InputStream; 8 9 public class XML2JSON { 10 11 public XML2JSON(){} 12 13 public static String xml2jsonString(String filepath) throws IOException,JSONException { 14 15 InputStream in = XML2JSON.class.getResourceAsStream(filepath); 16 String xml = IOUtils.toString(in); 17 System.out.print(xml); 18 System.out.println(); 19 20 JSONObject xmlJSONObj = XML.toJSONObject(xml); 21 String jsonStr = xmlJSONObj.toString(); 22 System.out.print(jsonStr); 23 24 return xmlJSONObj.toString(); 25 26 } 27 28 29 public static void main(String[] args) throws JSONException,IOException { 30 31 String string = xml2jsonString("simple.xml"); 32 System.out.println(string); 33 34 } 35 36 } 测试1:
<?xml version="1.0" encoding="ISO-8859-1"?>
<current_observation>
?<book id="bk101">
??<author>Gambardella,Matthew</author> ??<title>XML Developer‘s Guide</title> ??<genre>Computer</genre> ??<price>44.95</price> ??<publish_date>2000-10-01</publish_date> ??<description> An in-depth look at creating applications ???with XML.</description> ?</book>
?<book id="bk102">
?<author>Ralls,Kim</author> ?<title>Midnight Rain</title> ?<credit>NOAA‘s National Weather Service</credit> ?<credit_URL>http://weather.gov/</credit_URL> ?</book>
?<image>
??<url>http://weather.gov/images/xml_logo.gif</url> ??<title>NOAA‘s National Weather Service</title> ??<link>http://weather.gov</link> ?</image>
?<location>New York/John F. Kennedy Intl Airport,NY</location>
?<station_id>KJFK</station_id> ?<latitude>40.66</latitude> ?<longitude>-73.78</longitude> ?<observation_time_rfc822> ??Mon,11 Feb 2008 06:51:00 -0500 EST ?</observation_time_rfc822>
?<weather>A Few Clouds</weather>
?<temp_f>11</temp_f> ?<temp_c>-12</temp_c> ?<relative_humidity>36</relative_humidity> ?<wind_dir>West</wind_dir> ?<wind_degrees>280</wind_degrees> ?<wind_mph>18.4</wind_mph> ?<wind_gust_mph>29</wind_gust_mph> ?<pressure_mb>1023.6</pressure_mb> ?<pressure_in>30.23</pressure_in> ?<dewpoint_f>-11</dewpoint_f> ?<dewpoint_c>-24</dewpoint_c> ?<windchill_f>-7</windchill_f> ?<windchill_c>-22</windchill_c> ?<visibility_mi>10.00</visibility_mi>
?<icon_url_base>
??http://weather.gov/weather/images/fcicons/ ?</icon_url_base> ?<icon_url_name>nfew.jpg</icon_url_name> ?<two_day_history_url> ??http://www.weather.gov/data/obhistory/KJFK.html ?</two_day_history_url> ?<disclaimer_url> ??http://weather.gov/disclaimer.html ?</disclaimer_url> ?<copyright_url> ??http://weather.gov/disclaimer.html ?</copyright_url>
</current_observation>
?
{"current_observation":{"copyright_url":"http://weather.gov/disclaimer.html","windchill_f":-7,"windchill_c":-22,"book":[{"author":"Gambardella,Matthew","price":44.95,"genre":"Computer","description":"
An in-depth look at creating applicationsrntttwith XML.","id":"bk101","title":"XML Developer‘s Guide","publish_date":"2000-10-01"},{"author":"Ralls,Kim","credit_URL":"http://weather.gov/","id":"bk102","title":"Midnight Rain","credit":"NOAA‘s National Weather Service"}],"latitude":40.66,"two_day_history_url":"http://www.weather.gov/data/obhistory/KJFK.html","temp_c":-12,"temp_f":11,"wind_mph":18.4,"wind_degrees":280,"icon_url_base":"http://weather.gov/weather/images/fcicons/","icon_url_name":"nfew.jpg","weather":"A Few Clouds","dewpoint_f":-11,"longitude":-73.78,"image":{"link":"http://weather.gov","title":"NOAA‘s National Weather Service","url":"http://weather.gov/images/xml_logo.gif"},"dewpoint_c":-24,"station_id":"KJFK","wind_dir":"West","pressure_in":30.23,"wind_gust_mph":29,"disclaimer_url":"http://weather.gov/disclaimer.html","location":"New York/John F. Kennedy Intl Airport,NY","relative_humidity":36,"pressure_mb":1023.6,"visibility_mi":10,"observation_time_rfc822":"Mon,11 Feb 2008 06:51:00 -0500 EST"}}
? 测试2:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) --> <current_observation>
?
<book/>
?<book></book>
?<book id="bk98"/>
?<book id="bk99">
Hello World!</book>
?<book id="bk100">
??<author>Helen</author> ??<author>Jason</author> ?</book> ?<book id="bk101"> ??<author>Gambardella,Matthew</author> ??<title>XML Developer‘s Guide</title> ??<genre>Computer</genre> ??<price>44.95</price> ??<publish_date>2000-10-01</publish_date> ??<description> An in-depth look at creating applications ???with XML.</description> ?</book>
?<book id="bk102">
?<author>Ralls,Kim</author> ?<title>Midnight Rain</title> ?<credit>NOAA‘s National Weather Service</credit> ?<credit_URL>http://weather.gov/</credit_URL> ?</book>
</current_observation>
{"current_observation":{ "book":[ "","",{"id":"bk98"},{"id":"bk99","content":"Hello World!"},{ "author":["Helen","Jason"],"id":"bk100"},{"author":"Gambardella,"description":" An in-depth look at creating applicationsrntttwith XML.","credit":"NOAA‘s National Weather Service"} ]}} ? ? 各路方法,有使用第三方API,或者自写遍历迭代方法。 ? 在针对上述Demo的测试结果做分析,还需要进一步考虑以下几点: 1. 源XML文件自身特殊及复杂情况的转换定义。比如,字段含特殊字符,一个标签含多个属性,多个标签同名,invalid file等。 2. 目标JSON文件的转换定义。比如,各元素是否保持原有顺序,多个同名标签作为数组还是同级对象,等。 3. 转换过程中的异常处理。比如,转换中遇到无法解析而跳出导致该目标文件无效,异常捕获记录,等。 ? ? ? https://blog.csdn.net/bestxiaok/article/details/80443640 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |