JSONObjectとJSONArrayのJSON操作


 JSON(JavaScript Object Notation)は、軽量級のデータ交換フォーマットである.それはJavaScript(Standard ECMA-232 rd Edition-December 1999)のサブセットに基づいています.一度のプロジェクトでは、ページでデータを返します.
          1、Json.jarパッケージを導入する.
 
          2、JSONObject対象として使用する.
               まずJSONObjectオブジェクトを作成し、putメソッドを使ってオブジェクトに要素を追加します.
 
package JSON;

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

public class JSONObjectSampl {
	
	private static JSONObject createJSONObject(){
		JSONObject jsonObj = new JSONObject();
		try {
			jsonObj.put("id", "1");
			jsonObj.put("name", "sam");
			jsonObj.put("email", "[email protected]");
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return jsonObj;
	}
	
	public static void main(String[] args) {
		//    ,      .     
		JSONObject jsonObj = JSONObjectSampl.createJSONObject(); 
		
		System.out.println("jsonObj:"+jsonObj);
		
		//        
		boolean isArray = jsonObj.isArray();
		boolean isEmpty = jsonObj.isEmpty();
		boolean isNullObject = jsonObj.isNullObject();
		
		System.out.println("isArray:" + isArray + "\tisEmpty:" + isEmpty + "\tisNullObject:" + isNullObject);
		
		//    ,    jsonObj       
		jsonObj.element("address", "    ");
		System.out.println("        :"+jsonObj);
		
		//   jsonArray   
		JSONArray jsonArray = new JSONArray();
		
		jsonArray.add(0, "this is a jsonArray value");
		jsonArray.add(1,"another jsonArray value");
		jsonObj.element("jsonArray", jsonArray);
		//  jsonArray 
		JSONArray array = jsonObj.getJSONArray("jsonArray");
		
		System.out.println("jsonObj"+jsonObj);
		System.out.println("    jsonArray   "+array);
	
		//  key        
		String name = jsonObj.getString("name");
		System.out.println("name"+name);
		
		//       JSONObj
		String temp = jsonObj.toString();
		JSONObject object = JSONObject.fromObject(temp);
		System.out.println("temp:"+object.get("address"));
	}
}
 
 
           3、JSONArrayListオブジェクト使用
                 使用 elementメソッド保存対象
 
package JSON;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JSONTest {
	public static void main(String[] agrs){
		JSONObject jsonObj0 = new JSONObject();
		JSONObject jsonObj1 = new JSONObject();
		JSONObject jsonObj2 = new JSONObject();
		JSONObject jsonObj3 = new JSONObject();
		JSONArray jsonArray = new JSONArray();
		
		jsonObj0.put("name0", "  ");
		jsonObj0.put("sex0", "female0");
		System.out.println("jsonObj0:\t"+jsonObj0);
		
		jsonObj1.put("nam1", "  ");
		jsonObj1.put("sex1", "male1");
		System.out.println("jsonObj1:\t"+jsonObj1);
		
		jsonObj2.put("item0", jsonObj0);
		jsonObj2.put("item1", jsonObj1);
		System.out.println("jsonObj2:\t"+jsonObj2);
		
		jsonObj3.element("jsonObj3", jsonObj2);
		System.out.println("jsonObj3:\t"+jsonObj3);
		
        // JSONArray   JSONObject  。  JSONArray JSONObject     JSONArray JSONObject    []
        jsonArray.add(jsonObj1);
        System.out.println("jsonArray:"+jsonArray);
        
        JSONObject jsonObj4  = new JSONObject();
        jsonObj4.element("weather", jsonArray);
        System.out.println("jsonObj4:"+jsonObj4);
	}
}
 
 
           4、HTMLページ処理
                var data Obj=eval("++data+"))//Jsonオブジェクトに変換します.
                なぜエヴァはここに「("++")」/」を追加しますか?
                理由は、エヴァ自体の問題です.jsonは「{}」で始まり、終わりますので、JSでは、文のブロックとして扱われます.                を選択しますので、強制的に表現に変換する必要があります.
                括弧を入れる目的は、JavaScriptコードを処理する際にeval関数を強制的に括弧内の表現を強制することです.                                  (expression)は、ステートメントとしてではなく対象になります.一例を挙げると、例えば対象の字面量{                },外側の括弧を入れないと、evalは大きな括弧をJavaScriptコードブロックの開始と終了フラグとして認識します.                  空文が実行されたと思われます.以下の2つの実行結果は異なります.
 
                     alert(eval)//return undefined
                     alert(eval)//return object[Object]
 
           5、http://json-lib.sourceforge.net/apidocs/jdk15/index.html
   
           6、JSON.JARダウンロード住所 
                 http://download.csdn.net/detail/leiyinsu/7064451