Java中XML和JSON操作
2016-10-24 22:48
363 查看
XML操作
XML读取
API简介javax.xml.parsers:提供允许处理 XML 文档的类。
API | 作用 |
---|---|
DocumentBuilder | 定义 API, 使其从 XML 文档获取 DOM 文档实例。 |
DocumentBuilderFactory | 定义工厂 API,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器。 |
API | 作用 |
---|---|
Document | Document 接口表示整个 HTML 或 XML 文档。 |
Element | Element 接口表示 HTML 或 XML 文档中的一个元素。 |
Node | 该 Node 接口是整个文档对象模型的主要数据类型。 |
NodeList | NodeList 接口提供对节点的有序集合的抽象,没有定义或约束如何实现此集合。 |
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { //获得一个工厂实例 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //获得一个builder实例 DocumentBuilder builder = factory.newDocumentBuilder(); //使用builder解析一个目标文档 Document document = builder.parse("a.xml"); //获取DOM节点 Element root = document.getDocumentElement(); System.out.println(root.getAttribute("id")); NodeList list = root.getElementsByTagName("to"); System.out.println(list.item(0).getTextContent()); }
XML创建
代码示例package com.xk1995.xml; import java.io.File; import java.io.IOException; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.Transformer 4000 ConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; public class Xml001 { public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { // 获得一个工厂实例 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 获得一个builder实例 DocumentBuilder builder = factory.newDocumentBuilder(); // 使用builder解析一个目标文档 Document document = builder.newDocument(); Element root = document.createElement("email"); root.setAttribute("id", "lang"); Element from = document.createElement("from"); from.setTextContent("Mary"); root.appendChild(from); Element to = document.createElement("to"); to.setTextContent("Jack"); root.appendChild(to); document.appendChild(root); TransformerFactory trans = TransformerFactory.newInstance(); try { Transformer transform = trans.newTransformer(); StringWriter write = new StringWriter(); transform.transform(new DOMSource(document), new StreamResult(write)); // 写入到文件a.xml中 transform.transform(new DOMSource(document), new StreamResult(new File("file/a.xml"))); System.out.println(write); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } }
JSON操作
JSON简介
JSON特点
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON 是轻量级的文本数据交换格式
JSON 独立于语言和平台
JSON 具有自我描述性,更易理解
JSON语法
JSON 语法是 JavaScript 对象表示法语法的子集。数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
[ { "name": "runoob", "url": "www.runoob.com" }, { "name": "google", "url": "www.google.com" }, { "name": "微博", "url": "www.weibo.com" } ]
上例表示一个数组,里面有三个元素,每一个元素均是一个对象
JSON读取
相关包:gson-2.7.jar,链接: http://pan.baidu.com/s/1mhSWuwg 密码: kq84package com.xk1995.xml; import java.io.FileNotFoundException; import java.io.FileReader; import com.google.gson.JsonArray; import com.google.gson.JsonIOException; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; public class Xml002 { public static void main(String[] args) { JsonParser parser = new JsonParser(); try { JsonArray array = (JsonArray) parser.parse(new FileReader("file/a.json")); for (int i = 0; i < array.size(); i++) { JsonObject subobject = array.get(i).getAsJsonObject(); System.out.println("name=" + subobject.get("name").getAsString()); System.out.println("url=" + subobject.get("url").getAsString()); System.out.println("---------"); } } catch (JsonIOException e) { e.printStackTrace(); } catch (JsonSyntaxException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
JSON创建
package com.xk1995.xml; import java.io.FileWriter; import java.io.IOException; import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class Xml003 { public static void main(String[] args) throws IOException { JsonObject obj = new JsonObject(); obj.addProperty("name", "Mary"); JsonArray array = new JsonArray(); JsonObject obj1 = new JsonObject(); obj1.addProperty("id", "1"); array.add(obj1); JsonObject obj2 = new JsonObject(); obj2.addProperty("id", "2"); array.add(obj2); obj.add("people", array); FileWriter write = new FileWriter("b.json"); write.write(obj.toString()); write.close(); } }
相关文章推荐
- java中json操作xml和生成xml
- Java操作XML的一个类(修改版)[原创]
- Java操作XML的一个类[原创]
- java中四种操作xml方式的比较
- JAVA中四种操作XML方式的比较
- JAVA操作XML的四种归类
- Java操作Xml的小结
- java操作xml小结
- java中操作XML的方法
- JAVA高手解析XML配置文件的读取操作
- java 操作XML
- java中四种操作xml方式的比较[转]
- java中四种操作xml方式的比较
- java中四种操作xml方式的比较(转载)
- java中四种操作xml方式的比较(摘抄)
- java中操作XML
- Java中四种操作xml方式的比较(转贴)
- JAVA操作XML大全
- java操作xml编程实例(sax)
- JAVA中二种操作XML方式的比较