使用JSON文件讀取數據

定義

JSON 即 JavaScript Object Natation,它是一種輕量級的數據交換格式,非常適合於服務器與 JavaScript 的交互。

格式

JSON和 XML一樣,也是基於純文本的數據格式。由於 JSON 天生是爲 JavaScript 準備的,因此,JSON 的數據格式非常簡單,可以用 JSON 傳輸一個簡單的 String,Number,Boolean,也可以傳輸一個數組,或者一個複雜的 Object 對象。

如:

1  字符串   “abc”

2  整數       123

3  浮點數   -123.1

4 數組 -- json可以表示一個數組對象,使用 [] 包含所有元素,每個元素用逗號分隔

    ["abc",12345,false,null]

    [ { "city":"Beijing" },{ "street":" Chaoyang" },{ "postcode":100025 } ]

5 Object 對象在 JSON 中是用 {} 包含一系列無序的 Key-Value 鍵值對錶示的

   {"city":"Beijing","street":" Chaoyang","postcode":100025}

   其中 Value 也可以是另一個 Object 或者數組,因此,複雜的 Object 可以嵌套表示

   {employee :  {  firstName: "John" lastName : "Doe", employeeNumber : 123,title : "Accountant"  }  

實現從.json文件中讀取數據

1 在main/resources目錄下編寫PEData.json文件

2 簡單的java代碼

//getResourceAsStream方法首先搜索資源的父類加載器;如果父類加載器爲 null,則搜索的路徑就是虛擬機的內置類加載器的路徑。如果搜索失敗,則此方法將調用 findResource(String) 來查找資源。

//如:file:/D:/hty/htyWork/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/htybg/WEB-INF/classes/PEData.json

private static String JsonContext = ReadFile(PEData.class.getClassLoader().getResourceAsStream("PEData.json"));//讀取JSON文件

private static JSONArray jsonArray = JSONArray.fromObject(JsonContext)//獲取JSONArray 對象

Object test = jsonArray.getJSONObject(1).get(" **** ");//從JSONArray 中取出第二個對象,並取出變量 “ **** ”

Json與xml比較

JSON表示法在語法上要比XML要簡潔的多,由於不需要使用關閉標籤來呼應開始標籤,因此許多多餘的信息不再出現了,相對XML而言基本上不存在數據冗餘,這在傳輸與響應速度上大在提高了。

另外,JSON丟棄了DOM解析了(客戶端的JavaScript的XML DOM解析,服務器端的DOM、SAX、Dom4j、Jdom等)。

JSON與XML相比對JavaScript有着更好的通用性,一段JSON格式數據經過JavaScript一個簡單的方法(eval)即可轉換成 JavaScript對象供程序調用,轉換方法是瀏覽器的JavaScript內部定義好的無需再手工編寫。

而一段XML格式的數據需要調用瀏覽器內部的 XML解析器工具進行解析後纔可以使用。而對於不同內核的瀏覽器(如IE、Netscape等)XML解析的方法是有差別的,因此需要針對不同瀏覽器內核做不同的方法封裝,從而給客戶端開發帶來一定的複雜度。

相比之下JSON被瀏覽器解析的速度更快。在服務器端不同的語言也有不同的JSON解析器,可以很方便的解析客戶端傳過來的字符串,而不像爲了讀取XML還是藉助於這樣或那樣的API工具。

Json與properties比較

properties文件顧名思義,屬性文件,從它的名稱中直觀的理解就是,它應該是可以表示某些屬性,可以在它裏面定義一些字段,這將不需要我們在代碼中書寫,這就可以將這些信息從代碼中分離出來了

如:

jdbc.driver=org.gjt.mm.mysql.Driver

jdbc.url=jdbc:mysql://localhost:3306/hty?characterEncoding=utf-8

jdbc.username=root

JSON適合數據傳輸,properties適合做簡單的屬性配置,複雜的數據格式要用json定義

發佈了42 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章