java读取json

作者:原创时间:2022-03-29
文档

很多朋友都想知道java怎么读取json?下面就一起来了解一下吧~

首先在json官网页面的下方,在各个语言中的实现方法和操作类库,找到 Java 语言,选择 google-gson。

打开资源管理器,在工程 TestReadJSON 文件夹下,放入一个 JSON 文件:test.json

test.json 的内容:

package com.json; 
import java.io.FileNotFoundException; 
import java.io.FileReader;    
import com.google.gson.JsonArray; 
import com.google.gson.JsonIOException; 
import com.google.gson.JsonObject; 
import com.google.gson.JsonParser; 
import com.google.gson.JsonSyntaxException; 
public class ReadJSON { 
/** 
* 通过解析器将test.json转换成JsonObject 
* 
* @param args 
*/ 
public static void main(String[] args) { 
//将 test.json 的数据转换成 JSON 对象 
//需要创建一个解析器,可以用来解析字符串或输入流 
JsonParser parser=new JsonParser();
try { 
//创建一个JSON对象,接收parser解析后的返回值 
//使用parse()方法,传入一个Reader对象,返回值是JsonElement类型 
//因为要读取文件,所以传入一个FileReader 
//JsonObject是JsonElement的子类,所以需要强转 
//有异常抛出,使用 try catch 捕获 
JsonObject object=(JsonObject) parser.parse(new FileReader("test.json")); 
//先将两个外部的属性输出 category 和 pop 
//先 get 到名称(键),返回的是 JsonElement,再 getAs 转换成什么类型的值 
//依据 json 格式里的数据类型 
System.out.println("category="+object.get("category").getAsString()); 
System.out.println("pop="+object.get("pop").getAsBoolean()); 
//接着读取test.json里的JSON数组,名称是languages(键) 
//创建一个JsonArray 
JsonArray array=object.get("languages").getAsJsonArray(); 
for (int i = 0; i < array.size(); i++) { 
//分隔线 
System.out.println("-----------------"); 
//创建一个JsonObject,从array的下标获取,get() 返回JsonElement类型 
//这里不用强转,而用 getAsJsonObject() 进行转换 
JsonObject subObject=array.get(i).getAsJsonObject(); 
System.out.println("id="+subObject.get("id").getAsInt()); 
System.out.println("name="+subObject.get("name").getAsString()); 
System.out.println("ide="+subObject.get("ide").getAsString()); 
}  
} catch (JsonIOException e) { 
e.printStackTrace(); 
} catch (JsonSyntaxException e) { 
e.printStackTrace(); 
} catch (FileNotFoundException e) { 
e.printStackTrace(); 
} 
}   
}

以上就是小编今天的分享,希望能够帮到大家。

显示全文
java读取本地excel java decaf java调python java decode java decodeuri java delegate java调用c++接口 java调用c++ java获取绝对值 java delete java调用asmx接口 java dependency java dev java fastdfs java development java dict java fastjson java feign java divide java field java dataset java规则引擎 java dataframe java表单校验 java获得当前路径 java dashboard java获取随机数 java daemon java获取随机字符串 java ctp java获取运行时间 java cssbox java获取路径 java获取请求域名 java csrf java获取视频时长 java crontab java获取网络时间 java crash java获取秒级时间戳