使用json-lib来处理数据(配合jquery)

来源:互联网 发布:监管数据接口功能说明 编辑:程序博客网 时间:2024/04/30 06:43

  在项目中我使用jquery的getJSON方法来访问服务器端。服务器返回json。使之可以ajax.不用刷新网页.服务端我是用json-lib库来实现java语言对json数据交换格式处理.


1.数组转换成json
    Log log = LogFactory.getLog("loginAction");

    public void arrayJson(){
                   boolean[] boolArray = new boolean[]{true,false,true};
           JSONArray jsonArray = JSONArray.fromObject(boolArray);

           log.info("array json toString:" + jsonArray.toString());
           log.info("array json infoArray:");

           for(int i=0; i< jsonArray.toArray().length;i++){
                   log.info(i + ":"+jsonArray.toArray()[i]);
           }
    }

2.集合转换成json
list 转换成json
    public void listJson(){
       List list = new ArrayList();
       list.add("丽仪");
       list.add("陈盈");
       list.add("小红");

       JSONArray jsonArray = JSONArray.fromObject(list);

       log.info("json list:" + jsonArray.toString());
       log.info("get:" + jsonArray.get(0));

       log.info("getString:" +jsonArray.getString(1));
    }

map转换成json
    public void fromObject(){
        JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']");
        log.info("String formObject:" + jsonArray3.toString());

        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];}");

        log.info("map from object");

        JSONArray jsonMap = JSONArray.fromObject(map);
        log.info("map json:" + jsonMap);
    }

3.bean转换成json
     public void beanJson(){
        Employee liyi = new Employee();

        liyi.setFirstName("刘");
        liyi.setLastName("丽仪");
        liyi.setOtherInfo(new String[]{"啊仪","丽仪","啊姨"});

        JSONObject jsonObject = JSONObject.fromObject(liyi);
        log.info(jsonObject);
    }

4.json转换成xml
    public void jsonToXml(){
        Employee liyi = new Employee();

        liyi.setFirstName("刘");
        liyi.setLastName("丽仪");
        liyi.setOtherInfo(new String[]{"啊仪","丽仪","啊姨"});

        JSONObject jsonObject = JSONObject.fromObject(liyi);
        XMLSerializer xmlSerializer = new XMLSerializer();
        String xml = xmlSerializer.write(jsonObject);
        log.info("xml:" + xml);
    }

5.servlet如何返回该对象
    response.setContentType("applicatioin/json; charset=UTF-8");
    response.setHeader("Cache-Control", "nocache");
    response.getWriter().write(jsonArray.toString());
6、从JSON到Beans

//转化为动态bean

String myjson = "{name=""json"",bool:true,int:1,double:2.2,function:function(a){return a;},array:[1,2]}";

JSONObject json1 = JSONObject.fromString(myjson);

Object bean1 = JSONObject.toBean(json1);

7、由JSON生成XML

JSONObject json = new JSONObject(true);

XMLSerializer xmlSerializer = new XMLSerializer();

String xml = xmlSerializer.write(json);

System.out.println("xml:" + xml);

 

输出:xml:<?xml version="1.0" encoding="UTF-8"?>

<o null="true"/>

JSONObject json2 = JSONObject.fromObject("{""name"":""json"",""bool"":true,""int"":1}");

String xml2 = xmlSerializer.write(json2);

System.out.println("xml2:" + xml2);

 

输出:xml2:<?xml version="1.0" encoding="UTF-8"?>

<o><bool type="boolean">true</bool><int type="number">1</int><name type="string">json</name></o>

JSONArray json3 = JSONArray.fromObject("[1,2,3]");

String xml3 = xmlSerializer.write(json3);

System.out.println("xml3:" + xml3);

 

输出:xml3:<?xml version="1.0" encoding="UTF-8"?>

<a><e type="number">1</e><e type="number">2</e><e type="number">3</e></a>

原创粉丝点击