JSON快速

定義:JSON是一種與開發語言無關的,輕量級的數據格式,全稱是Javascript Object Notation(JS對象標記)。也就是說,JSON只是一種數據格式或者說是規範。

原理:

JSON-java最重要的類有三個
JSONObject : 包裝一個map。 用來表示一個{k:v,k2:v2,k3:[1,2]}形式的json數據
JSONArray :包裝一個ArrayList。用來表示一個[1,2,{k:v}]形式的json數據
JSONTokener:包裝一個Reader。用來存儲、讀取、操作一個表示JSON數據的字符串

過程:

1、JSONObject和JSONArray都可以用一個JSONTokener作爲構造參數去實例化。
2、解析時可能會產生多個JSONObject或者JSONArray。但是他們都是操作同一個JSONTokener。
3、JSONObject和JSONArray可以分別通過JSONTokener提供的方法解析出對方。可以實現嵌套

JSON的規則: 對象是一個無序的 “ ‘名稱/值’ 對” 集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”後跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。

標準的JSON數據表示:

數據結構:

Object:使用花括號{}包含的鍵值對結構,key必須爲string類型,value可以爲任何類型或數據結構。

Array:使用中括號[]來起始,並用逗號來分隔元素。

基本數據類型

String,number,true,false,null

優點:易於人的閱讀與編寫,易於程序解析與生產。

例子:

{

“name”:“汪洋”,

“Mayjor”:[“數學”,“語文”,“英語”],

“學習好”:true

}

JSON在Java中的使用:

首先需要導入各種包:

		json-lib-2.3-jdk15.jar 
		commons-beanutils-1.7.0.jar 
		commons-httpclient-3.1.jar 
		commons-lang-2.3.jar 
		commons-logging-1.0.4.jar 
		commons-collections-3.1.jar 
這些包可以在這個鏈接下載:http://download.csdn.net/download/qq_31126879/9414430
對了,別忘了在開頭同時需要import org.json.*(導入json各種包,比如,import org.json.JSONObject)
建立JSON對象:
	JSOObject json = new JSONObject();
	json.put(String,Object)
從文本中讀入JSON對象:
	File file = new File(ReadJSONSample.class.getResource("/Wangxiaoer.json"));
	String content = FileUtils.readFileToString(file)
	JSONObject jsonobject = new JSONObject(content)
可執行代碼:
package com.zhiwenwu.json0;

import net.sf.json.JSONException;
import net.sf.json.JSONObject;

//import org.json.JSONObject;
public class JsonObjectSample{
	public static void main(String[] args){
		jSONObject();
		}
private static void jSONObject(){
	JSONObject wangxiaoer = new JSONObject();//new一個JSONObject對象,命名爲wangxiaoerObject nullObj = null; //解決put中因二義性引起的編譯錯誤
try{
wangxiaoer.put("name","王小二");
wangxiaoer.put("age",25.2);
wangxiaoer.put("birthday","1990-01-01");
 wangxiaoer.put("school","藍翔");
wangxiaoer.put("major",new String[] {"理髮","挖掘機"});
wangxiaoer.put("has_girlfriend",false);
wangxiaoer.put("car",1);
wangxiaoer.put("house",1);
System.out.println(wangxiaoer.toString());//輸出JSON格式的wangxiaoer數據
}catch(JSONException e){
e.printStackTrace();
 }
}
}






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章