一.JSON简介
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
二.JSON的结构类型
1.对象:举例——[{"age":"13","name":"zhangSan"}] AND [{"age":"13","name":"zhangSan"},{"age":"14","name":"liSi"}]
其中,第一个是包含一个对象的JSON,第二个是包含两个对象的JSON,基本结构如图所示,参照例子理解即可
2.数组:举例——{"name","sex","age"}
这个跟普通的数组结构是一样的,基本结构对照图片理解。
图中的value可以是:
三.JSON的优点(故意不说缺点)
(1)数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
(2)易于解析,客户端JavaScript可以简单的通过eval_r()进行JSON数据的读取;
(3)支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
(4)在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
(5)因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
四.JSON简单实例
1.需要导入的Jar:
2.项目结构:
3.创建实体类——Employee.java:
package com.zhu.pojo;
public class Employee {
String name;
String age;
public Employee(String name, String age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Employee [name=" + name + ", age=" + age + "]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
4.创建测试类——test.java(注意,我这里使用的是Junit单元测试):
package com.zhu.json;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import com.zhu.pojo.Employee;
import net.sf.json.JSONArray;
public class test {
@Test
public void testCreateJsonArray() {
//List集合
List<Employee> list = new ArrayList<Employee>();
list.add(new Employee("zhangSan","13"));
list.add(new Employee("liSi","14"));
//创建json集合,将list集合放到Json数组集合中
JSONArray jsonArray = JSONArray.fromObject(list);
//以字符串的形式输出
System.out.println(jsonArray.toString());
}
}
5.输出结果:
(PS:有写的不好、不对的地方,欢迎各位大佬指出!)