JSON概念
是一种轻量级的数据交换格式
类似于XML,更小更快更易解析
JSONObject
JSON对象:{“name”:“Jo”,“email”:“a@b.com”}
数据用逗号隔开
花括号保存对象
其实就是一个键值对,完全可以理解为HashMap/Properties
JSONArray
就是JSON的数组,用方括号保存数组
[
{“name”:“Jo”,“email”:“a@b.com”},
{“name”:“Wo”,“email”:“c@b.com”}
]
方括号保存数组
java的JSON处理
java本身并没有像对传统的XML一样,对JSON也有相关的类可以进行解析,所以要依赖于第三方包来进行解析
- org.json (JSON官方推荐的解析类,简单易用,但复杂功能欠缺)
- GSON (Google出品,可以实现JSON对象,JSON字符串和Java对象互转)
- Jackson (简单易用,社区更新和发布速度快)
JSON主要用途
- JSON生成
- JSON解析
- JSON校验
- 和Java Bean对象进行互解析
不知道Java Bean是什么的看如下
org.json解析读取JSON
事先创建好JSON文件,其内容如下:
步骤如下:
1.首先利用IO流将文件读取出来
2.将读取出来的字符串转变为JSONbject对象
3.通过getJSONArray方法获得JSONbject中想要的student数组
4.然后遍历student数组,通过键值的方式获得值
具体代码如下:
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.File;
import java.io.FileReader;
public class test {
public static void main(String[] args) {
//读JSON文件
testJsonObject();
}
public static void testJsonObject(){
File file=new File("qwe.json");
try{
//1.首先利用IO流将文件读取出来
FileReader reader=new FileReader(file);
char [] chars=new char[(int)file.length()];
reader.read(chars);
String str=String.valueOf(chars);
//2.将读取出来的字符串转变为JSONbject对象
JSONObject object=new JSONObject(str);
//通过getJSONArray方法获得JSONbject中想要的student数组
JSONArray array=object.getJSONArray("student");
//然后遍历student数组,通过键值的方式获得值
for (Object i:array) {
JSONObject result=(JSONObject) i;
System.out.println("姓名:"+result.get("name"));
System.out.println("学科:"+result.get("subject"));
System.out.println("成绩:"+result.get("score"));
System.out.println();
}
}catch (Exception eror){
System.out.println(eror);
}
}
}
输出结果如下: