惯例:
算了,习惯也是可以改的。我是温浩然。
需求,把一个XML格式文件,改成JSON格式。
代码如下:
import java.io.File; import java.io.FileNotFoundException; import java.io.PrintStream; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import net.sf.json.JSONObject; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; public class Xml2Json { public static void main(String[] args) { String path = "C://Users//whr-pc//Desktop//classpath//img//faceMap_ch.plist"; File file = new File(path); //生成JSON String strJSON = xml2JSON(file); //日志输出到指定文件中 PrintStream out; try { out = new PrintStream("C://Users//whr-pc//Desktop//classpath//img//Systemout.txt"); System.setOut(out); System.out.println(strJSON); } catch (FileNotFoundException e) { e.printStackTrace(); } } public static String xml2JSON(File file) { JSONObject obj = new JSONObject(); try { SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(file); String doc2str = doc.toString(); System.out.println(doc2str); Element root = doc.getRootElement(); obj.put(root.getName(), iterateElement(root)); return obj.toString(); } catch (Exception e) { e.printStackTrace(); return null; } } @SuppressWarnings({ "rawtypes", "unchecked" }) private static Map iterateElement(Element element) { List jiedian = element.getChildren(); Element et = null; Map obj = new HashMap(); List list = null; for (int i = 0; i < jiedian.size(); i++) { list = new LinkedList(); et = (Element) jiedian.get(i); if (et.getTextTrim().equals("")) { if (et.getChildren().size() == 0) continue; if (obj.containsKey(et.getName())) { list = (List) obj.get(et.getName()); } list.add(iterateElement(et)); obj.put(et.getName(), list); } else { if (obj.containsKey(et.getName())) { list = (List) obj.get(et.getName()); } list.add(et.getTextTrim()); obj.put(et.getName(), list); } } return obj; } }
这个代码是可以复制出来用的,完全没有问题。
只是,我在导入JSON的jar包的时候,遇到了各种问题,每个问题,都是缺少jar包。
到最后,文中需要的jar包,剩下如图下的几个:
唉,剩下的也没测试删了可以不可以,应该是都必须要把。
其中,除了jdom-1.0.jar,别的好像都是JSON所需的jar包。
这些包,网上都有,自己下载吧,然后,运行就可以用了,运行单个java文件的方法,看我另一篇日志。
时间: 2024-12-11 00:23:37