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