一、数据封装

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()方法。

样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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"));
    }  
}

运行结果:

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
qq==>999999999

java 后台封装json数据学习总结的更多相关文章

  1. java 后台封装json数据学习总结(一)

    一.数据封装 1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( &quo ...

  2. java 后台封装json数据学习总结(二)

    一.JSONArray的应用 从json数组中得到相应java数组,如果要获取java数组中的元素,只需要遍历该数组. /* * 从json数组中得到相应java数组 * JSONArray下的toA ...

  3. java后台接收json数据,报错com.alibaba.fastjson.JSONObject cannot be cast to xxx

    从前台接收json封装的list数据,在后台接收时一直报错,com.alibaba.fastjson.JSONObject cannot be cast to xxx, 使用这种方式接收可以接收 @R ...

  4. fastJson java后台转换json格式数据

    什么事JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

  5. fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map

    作者:buster2014 推荐:长安散人 fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map JSON字符串与Java对象的转换 1.将Java对象或Java ...

  6. 传递给后台的Json数据解析

    后台代码如下: public void ProcessRequest(HttpContext context) { context.Response.ContentType = "appli ...

  7. jquery用ajax方式从后台获取json数据,将内容填充到下拉列表。

    从后台获取json数据,将内容填充到下拉列表. url:链接 par:ID sel:下拉列表选择器 //获取下拉列表 function BuildSelectBox(url, par, sel) { ...

  8. 使用Map List 封装json数据

    <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</art ...

  9. Jquery Ajax和getJSON获取后台普通Json数据和层级Json数据解析

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. spark教程(10)-sparkSQL

    sparkSQL 的由来 我们知道最初的计算框架叫 mapreduce,他的缺点是计算速度慢,还有一个就是代码比较麻烦,所以有了 hive: hive 是把类 sql 的语句转换成 mapreduce ...

  2. Windows Runtime (RT)

    学了sl for wp 开发了1年都没入门,只能说自己的学习欲望太低了. 今天偶然才发现wrt 跟 .net 是2个东西... orz. 得抛弃 sl ,wrt才是未来的主流吧... 这篇文章不错 h ...

  3. JsonObject、JsonArray操作json的个人总结

    介绍 JsonObject.JsonArray之前,先介绍下JsonConfig JsonConfig: setClassMap(Map classMap)设置json属性类型,上json里的其中值为 ...

  4. 剑指offer-和为S的连续正数序列-知识迁移能力-python

    题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...

  5. 无障碍开发(三)之ARIA aria-***属性值

    aria-***属性值

  6. 面向对象-this关键字的概述和应用

    /* 我们曾经说过:定义名字要做到见名知意. this:是当前类的对象引用.简单的记,它就代表当前类的一个对象. 注意:谁调用这个方法,在该方法内部的this就代表谁. this的场景: 解决局部变量 ...

  7. 树莓派 ubuntu mate 16.4 frp使用什么版本 如何让外网访问

    首先 frp选择frp arm 我选的是32位 你先需要一个有公网ip的服务器,然后搜索网上frp的教程,网上很多足够

  8. mysql的auto-rehash简介

    今天在看mysql的配置文件的时候,发现有"auto-rehash"不明白什么意思,在此记录一下,auto-rehash是自动补全的意思,就像我们在linux命令行里输入命令的时候 ...

  9. Linux内核链表深度分析

    链表简介:链表是一种常用的数据结构,它通过指针将一系列数据节点连接成一条数据链.相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入 ...

  10. Centos的yum源更换为阿里云源

    1.备份 # mv /etc/yum.repos.d/CentOS-Base.repo # /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS- ...