-
Json是一种轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
-
Fastjson是一个Java库,可用于将Java对象转换为其JSON表示形式,也可以用于将JSON字符串转换为等效的Java对象。Fastjson可以与任意Java对象一起使用。
-
fastjson的优点
- 速度快
- fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1.x版本之后,其性能从未被其他Java实现的JSON库超越。
- 使用广泛
- fastjson在阿里巴巴大规模使用,在数万台服务器上部署,fastjson在业界被广泛接受。在2012年被开源中国评选为最受欢迎的国产开源软件之一。
- 测试完备
- fastjson有非常多的testcase,在1.2.11版本中,testcase超过3321个。每次发布都会进行回归测试,保证质量稳定。
- 使用简单
- fastjson的 API 十分简洁。
- 功能完备
- 支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展。
- 速度快
-
导入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>xxx</version> </dependency>
-
fastjson的使用
- 实体类
public class Person { @JSONField(name = "AGE") private int age; @JSONField(name = "FULL NAME") private String fullName; @JSONField(name = "DATE OF BIRTH") private Date dateOfBirth; public Person(int age, String fullName, Date dateOfBirth) { super(); this.age = age; this.fullName= fullName; this.dateOfBirth = dateOfBirth; } // 标准 getters & setters }
- 使用 JSON.toJSONString() 将 Java 对象转换换为 JSON 对象:
private List<Person> listOfPersons = new ArrayList<Person>(); @Before public void setUp() { listOfPersons.add(new Person(15, "John Doe", new Date())); listOfPersons.add(new Person(20, "Janette Doe", new Date())); } @Test public void whenJavaList_thanConvertToJsonCorrect() { String jsonOutput= JSON.toJSONString(listOfPersons); }
- 使用 JSON.parseObject() 将 JSON 字符串转换为 Java 对象
@Test public void whenJson_thanConvertToObjectCorrect() { Person person = new Person(20, "John", "Doe", new Date()); String jsonObject = JSON.toJSONString(person); Person newPerson = JSON.parseObject(jsonObject, Person.class); assertEquals(newPerson.getAge(), 0); // 如果我们设置系列化为 false assertEquals(newPerson.getFullName(), listOfPersons.get(0).getFullName()); }