Java之旅--XML/JSON


XML和JSON是两种常用的数据交换格式。虽然对于XML和JSON的各种操作,仅仅是常用的工具jar包的使用,没有什么技术含量,但鉴于这两种数据格式的普遍使用,还是拿出一点时间,进行一下简单总结。


XML


XML官网:http://www.xml.com/

XML保留字符有5个:&、>、<、‘、""。

对于XML的解析方式,有两种:DOM方式和SAX方式。DOM是读入内存之后进行各种操作,SAX是流式操作、一次性的。其他的一些工具jar包,比如JDOM、DOM4J,都是对于这两种方式的高层次封装。

参考网址:

对于JSON的解析,各种语言下都有 很多可用客户端,在Java下,fastjson是推荐使用的一种,快、强大、无依赖。

代码演示:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;

/**
 * fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发
 * 
 * 
 * 主要特点:比其它任何基于Java的解析器和生成器更快,包括jackson;强大;零依赖
 *
 */
public class FastjsonDemo {
	public static void main(String[] args) {

		// 将JSON和JavaBean对象互相转换
		Person person = new Person(1, "张三", null);
		String jsonString = JSON.toJSONString(person);
		System.out.println(jsonString);
		person = JSON.parseObject(jsonString, Person.class);
		System.out.println(person.getName());

		System.out.println("--------------------------------------");

		// 将JSON字符串转化成List<JavaBean>对象
		Person person1 = new Person(1, "fastjson1", 11);
		Person person2 = new Person(2, "fastjson2", 22);
		List<Person> persons = new ArrayList<Person>();
		persons.add(person1);
		persons.add(person2);
		jsonString = JSON.toJSONString(persons);
		System.out.println("json字符串:" + jsonString);
		persons = JSON.parseArray(jsonString, Person.class);
		System.out.println(persons.toString());

		System.out.println("--------------------------------------");

		// 将JSON字符串转化成List<String>对象
		List<String> list1 = new ArrayList<String>();
		list1.add("fastjson1");
		list1.add("fastjson2");
		list1.add("fastjson3");
		jsonString = JSON.toJSONString(list1);
		System.out.println(jsonString);
		List<String> list2 = JSON.parseObject(jsonString, new TypeReference<List<String>>() {
		});
		System.out.println("list2:" + list2.toString());

		System.out.println("--------------------------------------");

		// JSON<Map<String,Object>>对象
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("key1", "value1");
		map.put("key2", "value2");
		Map<String, Object> map2 = new HashMap<String, Object>();
		map2.put("key1", 1);
		map2.put("key2", 2);
		List<Map<String, Object>> list3 = new ArrayList<Map<String, Object>>();
		list3.add(map);
		list3.add(map2);
		jsonString = JSON.toJSONString(list3);
		System.out.println("json字符串:" + jsonString);
		List<Map<String, Object>> list4 = JSON.parseObject(jsonString, new TypeReference<List<Map<String, Object>>>() {
		});
		System.out.println("list4:" + list4.toString());
	}
}

class Person {

	private Integer id;
	private String name;
	private Integer age;

	public Person() {
	}

	public Person(Integer id, String name, Integer age) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append("ID:").append(id);
		sb.append("-Name:").append(name);
		sb.append("-Age:").append(age);
		return sb.toString();
	}
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。