使用Java讀取JSON數據


----------------siwuxie095

   

   

   

   

   

   

JSON 官網:http://www.json.org/

   

在官網頁面的下方,是 JSON 數據格式在各個語言中的實現方法和操作類庫

   

找到 Java 語言,選擇 google-gson (成熟,且操作簡單,被大多數開發者所使用的)

   

   

google-gson 下載鏈接:https://github.com/google/gson

   

截止 2017/3/30 最新版本 gson-2.8.0 下載鏈接:

http://download.csdn.net/detail/siwuxie095/9799544

   

   

   

   

工程名:TestReadJSON

包名:com.siwuxie095.json

類名:ReadJSON.java

   

   

打開資源管理器,在工程 TestReadJSON 文件夾下,放入

一個 JSON 文件:test.json

   

test.json 的內容:

   

   

   

   

打開資源管理器,在工程 TestReadJSON 文件夾下,創建一個

文件夾:lib,在其中放入:gson-2.8.0.jar

   

   

工程結構目錄如下:

   

   

   

   

選擇 gson-2.8.0.jar,右鍵->Build Path->Add to Build Path

   

此時,工程結構目錄一覽:

   

   

   

   

   

代碼:

   

package com.siwuxie095.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

//JsonObjectJsonElement的子類,所以需要強轉

//有異常拋出,使用 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();

}

}

   

}

   

   

運行一覽:

   

   

   

   

   

   

   

   

【made by siwuxie095】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM