一、数据封装

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==>\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

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. ABP官方文档翻译 9.2 Entity Framework Core

    Entity Framework Core 介绍 DbContext 配置 在Startup类中 在模块PreInitialize方法中 仓储 默认仓储 自定义仓储 应用程序特定基础仓储类 自定义仓储 ...

  2. NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析 Part 3.

    *已更新 胡乱分析的第三部分,程序填空(所谓的完善程序) 说到初赛,好像本周六就是了.哇好激动.. 填空题都是玄学.也许get到点了就会好做一些.. (标红的是填在空里的答案) T1.交朋友 (小矮个 ...

  3. BZOj 4540: [Hnoi2016]序列 [莫队 st表 预处理]

    4540: [Hnoi2016]序列 题意:询问区间所有子串的最小值的和 不强制在线当然上莫队啦 但是没想出来,因为不知道该维护当前区间的什么信息,维护前后缀最小值的话不好做 想到单调栈求一下,但是对 ...

  4. BZOJ 3209: 花神的数论题 [数位DP]

    3209: 花神的数论题 题意:求\(1到n\le 10^{15}\)二进制1的个数的乘积,取模1e7+7 二进制最多50位,我们统计每种1的个数的数的个数,快速幂再乘起来就行了 裸数位DP..\(f ...

  5. 让SpringMVC Restful API优雅地支持多版本

    好久没有更新博客,难得有空,记录一下今天写的一个小工具,供有需要的朋友参考. 在移动APP开发中,多版本接口同时存在的情况经常发生,通常接口支持多版本,有以下两种方式: 1.通过不同路径区分不同版本 ...

  6. AI 学习新的开始

    推荐入门学习 http://www.cnblogs.com/subconscious/p/6240151.html

  7. Linux中的 awk查找日志中的相关记录

    假设要在 api.log.201707201830 文件中,(此文件的多个字段数据以不可见字符^A(键盘上按下Ctrl+V+A)分隔),要输出第70个字段: awk -F '^A' '{print $ ...

  8. php 下载保存文件保存到本地的两种实现方法

    这里的下载,指的是 弹出下载提示框. 第一种: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php function downfile() {  $filename ...

  9. c中const定义的问题

    /* 这题有个疑问: const double BASE1=BREAK1*RATE1; //第二个分界点前总共要缴的税收 const double BASE2=BASE1+(BREAK2-BREAK1 ...

  10. 表的操作(Oracle和DB2)

    asc和desc 分别表示升序和降序 select * from tablename order by id desc :根据id字段按照降序排列,从大到小 select * from tablena ...