您的位置:首页 > 编程语言 > Java开发

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 对象树的解析器。
org.w3c.dom:为文档对象模型 (DOM) 提供接口,该模型是 Java API for XML Processing 的组件 API。

API作用
DocumentDocument 接口表示整个 HTML 或 XML 文档。
ElementElement 接口表示 HTML 或 XML 文档中的一个元素。
Node该 Node 接口是整个文档对象模型的主要数据类型。
NodeListNodeList 接口提供对节点的有序集合的抽象,没有定义或约束如何实现此集合。
代码示例

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 密码: kq84

package 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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: