解析JSON

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);
                }
    }
}


输出结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值