java讀取json

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

很多朋友都想知道java怎麼讀取json?下面就一起來了解一下吧~

首先在json官網頁面的下方,在各個語言中的實現方法和操作類庫,找到 Java 語言,選擇 google-gson。

打開資源管理器,在工程 TestReadJSON 文件夾下,放入一個 JSON 文件:test.json

test.json 的內容:

java讀取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(); } }   }