• 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.ezmorph.jar

          6.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==>
    "+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==>
    "+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对象==>
    "+array);  
            //添加JSONArray后的值  
            System.out.println("结果==>
    "+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"));
        }  
    }
     运行结果:
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    添加属性前的对象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
  • 相关阅读:
    Java设计模式--Java Builder模式
    Android网络开发之OkHttp--基本用法实例化各个对象
    Android网络开发之OkHttp--基本用法POST
    Android网络开发之OkHttp--基本用法GET
    Eclipse开发工具的使用之-使用Eclipse的Debug调试Android程序
    Android网络开发之Volley--Volley自定义Request
    弹出软键盘时,不把activity整体往上移,只移动部分
    圆角背景实现,如实现圆角按钮;用xml文件画圆
    在java代码中设置TextView文本内容可滚动
    Android模拟HOME键的效果
  • 原文地址:https://www.cnblogs.com/shaoxiaohuan/p/8489156.html
Copyright © 2020-2023  润新知