JSON
1.意义
- 官方介绍
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 建构于两种结构:“名称/值”对的集合(A collection of name/value pairs)。 不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有 键列表(keyed list),或者关联数组 (associative array)。值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
- 实战使用
现在项目都是基于微服务的,后端返回 JSON 格式的数据,因而我们需要学习好 JSON 的书写和操作
JSON例子
- 对象
{}
{"name1":23}
{"n1":2,"n2":3}
- 数组
[]
[1]
[1,2,3]
在JAVA中操作JSON操作
- 轻量级类库 org.json
1.添加依赖
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20190722</version>
</dependency
2.新建类
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
private String pwd;
@JsonFormat(pattern="yyyy-MM-dd")
private Date birthday;
public Person() {
}
public Person(int id, String name, String pwd, Date birthday) {
super();
this.id = id;
this.name = name;
this.pwd = pwd;
this.birthday = birthday;
}
public int getId() {
return id;
}
...
3.测试
public class Test01 {
public static void main(String[] args) {
//Object----->JSON
Person person=new Person(12, "zhangsan", "123", new Date());
JSONObject jsonObject=new JSONObject(person);
String json=jsonObject.toString();
System.out.println(json);
//JSON--->Object
JSONObject jsonObject2=new JSONObject(json);
System.out.println(jsonObject2.get("name"));
}
}
- 重量级类库 org.json
1.添加依赖
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.9.9</version>
</dependency>
2.测试
public class Test02 {
public static void main(String[] args) throws IOException {
ObjectMapper objectMapper=new ObjectMapper();
//Object--->JSON
Person person=new Person(12, "zhangsan", "123", new Date());
String json=objectMapper.writeValueAsString(person);
System.out.println(json);
//JSON----->Object
Person p2=objectMapper.readValue(json, Person.class);
System.out.println(p2);
}
}
在Web中操作JSON操作
- 代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
var json="{\"name\":\"zhangsan\",\"age\":23}";
//json---------->Object
var obj=JSON.parse(json);
console.dir(obj);
//Object---------->json
var json2=JSON.stringify(obj);
console.log(json2);
</script>
</body>
</html>
- 测试