1. 程式人生 > >java後臺封裝json資料學習(一)

java後臺封裝json資料學習(一)

一、資料封裝

1、List集合轉換成json程式碼

  List list = new ArrayList();
  list.add( "first" );
  list.add( "second" );
  JSONArray jsonArray2 = JSONArray.fromObject( list );

2、Map集合轉換成json程式碼

  Map map = new HashMap();
  map.put("name", "json");
  map.put("bool", Boolean.TRUE);
  map.put("int", new Integer(1
));   map.put("arr", new String[] { "a", "b" });   map.put("func", "function(i){ return this.arr[i]; }");   JSONObject json = JSONObject.fromObject(map);

3、Bean轉換成json程式碼

  JSONObject jsonObject = JSONObject.fromObject(new JsonBean());

4、陣列轉換成json程式碼

  boolean[] boolArray = new boolean[] { true
, false, true };   JSONArray jsonArray1 = JSONArray.fromObject(boolArray);

5、一般資料轉換成json程式碼

  JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );

二、JAR包簡介

在你的應用中加入引入JSON-lib包,JSON-lib包同時依賴於以下的JAR包:下載地址:http://json-lib.sourceforge.net/
1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.commons-httpclient.jar
6.ezmorph.jar
7.json-lib-2.2.2-jdk15.jar

用法同上

  JSONObject jsonObject = JSONObject.fromObject(message);
  getResponse().getWriter().write(jsonObject.toString());

當把資料轉為json後,用如上的方法傳送到客戶端。前端就可以取得json資料了。

也可以用

    List  list1 = new ArrayList<ListDate>()

    ListDate ListDate2 = new ListDate();
    ListDate2.setId(examSubject.getId());
    ListDate2.setValue(examSubject.getSubjectName());

    list1.add(ListDate2);     

    JSONArray jsonArray1 = JSONArray.fromObject(list1);

前臺迴圈取

  $.each(date, function(i, obj) {
              $("#examName").append("<option value='" + obj.id + "'>"+ obj.value+ "</option>");
        });

三、JSONObject物件使用

JSON-lib包是一個beans,collections,maps,java arrays 和XML和JSON互相轉換的包。在本例中,我們將使用JSONObject類建立JSONObject物件,然後我們列印這些物件的值。為了使用JSONObject物件,我們要引入”net.sf.json”包。為了給物件新增元素,我們要使用put()方法。

樣例:


import net.sf.json.JSONArray;

import net.sf.json.JSONObject;



public class JSONObjectSample {

    //建立JSONObject物件   

    private static JSONObject createJSONObject(){   

        JSONObject jsonObject = new JSONObject();   

        jsonObject.put("username","huangwuyi");   

        jsonObject.put("sex", "男");   

        jsonObject.put("QQ", "999999999");   

        jsonObject.put("Min.score", new Integer(99));   

        jsonObject.put("nickname", "夢中心境");   

        return jsonObject;   

    }   

    public static void main(String[] args) {   

        JSONObject jsonObject = JSONObjectSample.createJSONObject();   

        //輸出jsonobject物件   

        System.out.println("新增屬性前的物件jsonObject==>\n"+jsonObject);   

        //判讀輸出物件的型別   

        boolean isArray = jsonObject.isArray();   

        boolean isEmpty = jsonObject.isEmpty();   

        boolean isNullObject = jsonObject.isNullObject();   

        System.out.println("isArray:"+isArray+" isEmpty:"+isEmpty+" isNullObject:"+isNullObject);  

        //新增屬性   

        jsonObject.element("address", "福建省廈門市");   

        System.out.println("新增屬性後的物件jsonObject==>\n"+jsonObject);   



        //返回一個JSONArray物件   

        JSONArray jsonArray = new JSONArray();   

        jsonArray.add(0, "this is a jsonArray value");   

        jsonArray.add(1,"another jsonArray value");   

        jsonObject.element("jsonArray", jsonArray);   

        JSONArray array = jsonObject.getJSONArray("jsonArray");   

        System.out.println("返回一個JSONArray物件==>\n"+array);   

        //新增JSONArray後的值   

        System.out.println("結果==>\n"+jsonObject);   



        //根據key返回一個字串   

        String username = jsonObject.getString("username");   

        System.out.println("username==>"+username);  



        //把字元轉換為 JSONObject

        String temp=jsonObject.toString();

        JSONObject object = JSONObject.fromObject(temp);

        //轉換後根據Key返回值

        System.out.println("qq==>"+object.get("QQ"));

    }   

}

執行結果:


新增屬性前的物件jsonObject==>

{"username":"huangwuyi","sex":"男","QQ":"999999999","Min.score":99,"nickname":"夢中心境"}

isArray:false isEmpty:false isNullObject:false

新增屬性後的物件jsonObject==>

{"username":"huangwuyi","sex":"男","QQ":"999999999","Min.score":99,"nickname":"夢中心境","address":"福建省廈門市"}

返回一個JSONArray物件==>

["this is a jsonArray value","another jsonArray value"]

結果==>

{"username":"huangwuyi","sex":"男","QQ":"999999999","Min.score":99,"nickname":"夢中心境","address":"福建省廈門市","jsonArray":["this is a jsonArray value","another jsonArray value"]}

username==>huangwuyi

qq==>999999999