前言
本文主要介绍在JSON,以及如何通过JAVA进行JSON的相关操作。
环境:MAC系统,IDEA
一、JSON是什么?
JSON,全名JavaScript Object Notation,是一种轻量级的数据交换格式。完全独立于其他语言,并且对比于传统数据传输格式XML,其性能得到更大完善,但是也有其缺点,即可读性比XML稍逊一筹。
常被用于:网络数据传输、数据存储、配置文件。
简单的例子:在进行开发时,使用B/S(浏览器/服务器)模式,浏览器端的各种输入数据以及生成的结果,需要与服务器进行交互。而JSON就是交互过程中数据书写方式,并以此来进行传输。
二、JSON语法与编写
对于JSON,一个对象, 由一个大括号表示。
括号中描述对象的属性。通过键值对来描述对象的属性(可以理解为,大括号中, 包含的是一个个的键值对)格式:
键与值之间使用冒号连接,多个键值对之间使用逗号分隔。
键值对的键应使用引号引住(通常Java解析时,键不使用引号会报错。而JS能正确解析)键值对的值,可以是JS中的任意类型的数据。
例子:
JSON:
{
"name":"金苹果",
"info":"种苹果"
}
并且在JSON格式中可以与对象互相嵌套 [元素1,元素2…]
案例:
{
"name":"老师",
"age":18,
"pengyou":["张三","李四","王二","麻子",{
"name":"野马老师",
"info":"像匹野马一样狂奔在技术钻研的道路上"
}],
"heihei":{
"name":"大长刀",
"length":"40m"
}
}
三、JSON在JAVA中的使用
1.JAVA中常使用的JSON包
分别是:Gson(谷歌)、FastJson(阿里)
(两种包在Github开源)
二者各有优点,均可以实现将对象转换为JSON字符串,以及将JSON字符串转换为对象。但是后者有时会出现一些bug。
下面在使用方式对FastJson进行介绍,国内使用的较多,Gson的使用只是方法调用有区别,大体一致。
2.导入包
首先去Github下载FastJson的jar包。
https://github.com/alibaba/fastjson
如图:
下载后,在IDEA创建的项目中,右键创建一个lib文件夹,并将所下载的jar包复制入其中,如图所示:
再打开File->Project Structure,如图在Library区点击➕,如图:
如此导入一个src项目包;然后再将jar包导入:
选择lib文件夹内的对应jar即可。
完成以上操作,即可在项目内进行使用对应包。引入完成会发现对应包是可以如文件夹一样打开的:
3.JAVA中使用
1.将对象转换为JSON
public class demo4 {
public static void main(String[] args) {
//对象
Book book = new Book("雾都孤儿", "一个孤儿的故事");
//通过调用方法
//JSON.toJSONString(对象);返回String类型
String json= JSON.toJSONString(book);
//输出结果
System.out.println(json);
}
public static class Book{
private String name;
private String info;
public Book(String name, String info) {
this.name = name;
this.info = info;
}
public Book() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
...
}
}
输出结果:
{"info":"一个孤儿的故事","name":"雾都孤儿"}
2.将JSON字符串转换为对象
public class demo4 {
public static void main(String[] args) {
//输入json字符串,注意,在字符串中的引号写法
String json= "{\"info\":\"一个孤儿的故事\",\"name\":\"雾都孤儿\"}";
//调用方法
// 类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
// 或 List<类型> list=JSON.parseArray(JSON字符串,类型.class);
Book book = JSON.parseObject(json, Book.class);
//输出结果
System.out.println(book.toString());
}
输出结果:
book{name='雾都孤儿', info='一个孤儿的故事'}
总结
此处只是基于个人学习介绍,可能不够详细,敬请见谅。