本人开发的开发者技术变现资源聚集地,大家支持下,下面是网址

https://www.baiydu.com

servlet我们可以把他当成一个数据媒介,他最终执行的是将方法体内获取处理后的数据,返回给请求的客户端,或以XML格式,或以JSON格式 ,我这里是使用的JSON格式数据,所以下面我要说org.json.jar这个库及我封装的返回数据的方式。

这个库有两个核心类->JsonObject 和JsonArray

一、JsonObject 

JsonObject 这个类就相当于IOS中的NSDictionary,转换后是以键值对的方式将数据呈现给客户端调用人员,当然这里我们返回的是JSON字符,所以我们需要先将JsonObject .toString()一下,然后IOS就可以将这个JSON字符串转换成 字典NSDictioanry,然后就以键值对方式取值(如:NSString *name=[NSDictionary objectForKey("name")],由于android就是用java开发的,所以android开发人员可以直接使用这个类,将获取的json字符串反转回去成JsonObject 类取值(String name=JsonObject.get("name"))

下面我贴数据库ResultSet转换成JSonObject的方法,这里有个重点就是JsonObject接受的其实是一个对象,他不是数组集合,所以这里如何数据库返回的

ResultSet有多条数据他只能将第一条数据转换为它的,其实你可以把JSonArray当成一个JAVA中的泛型集合,他存放的类就是JSonObject类.
public static JSONObject resultSetToJsonObject(ResultSet rs) throws SQLException,JSONException
{
// json对象
JSONObject jsonObj = new JSONObject();
// 获取列数
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
// 遍历ResultSet中的每条数据
if (rs.next()) {
// 遍历每一列
for (int i = 1; i <= columnCount; i++) {
String columnName =metaData.getColumnLabel(i);
String value = rs.getString(columnName);
jsonObj.put(columnName, value);
}
}
return jsonObj;
}

二、JsonArray

 JsonArray 这个类就相当于IOS中的NSArray,转换后是以集合方式将数据呈现给客户端调用人员,当然这里我们返回的是JSON字符,所以我们需要先将JsonArray .toString()一下,然后IOS就可以将这个JSON字符串转换成 字典NSArray,然后用循环遍历集合中的每一个成员,(如:for(int i=0;i<NSArray.count;i++)
{
   NSDictionary *dic=[NSArray objectAtIndex:i];

NSString *name=[dic objectForKey("name")];

}
,由于android就是用java开发的,所以android开发人员可以直接使用这个类,将获取的json字符串反转回去成JsonArray 然后遍历取值:

for(int i = 0; i <JsonArray.length; i++) {//遍历JSONArray

JSONObject oj = JsonArray.getJSONObject(i);

String name=oj.get("name");

}

其实JSonArray里面的成员就是JSonObject,这里还可以创建类来接受值,ADD到List<>里面去做一个泛型集合.

下面我贴数据库ResultSet转换成JSonObject的方法

    public static JSONArray resultSetToJsonArry(ResultSet rs) throws SQLException,JSONException
{
// json数组
JSONArray array = new JSONArray(); // 获取列数
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount(); // 遍历ResultSet中的每条数据
while (rs.next()) {
JSONObject jsonObj = new JSONObject(); // 遍历每一列
for (int i = 1; i <= columnCount; i++) {
String columnName =metaData.getColumnLabel(i);
String value = rs.getString(columnName);
jsonObj.put(columnName, value);
}
array.put(jsonObj);
} return array;
}

三、组合一个能公用的JSon

     我现在是这样的组合的,转换的JSON字符串是从一个JsonObejct转换去的,JSonObject里面有put了两个队值,一个类型是JsonObject,另一个就是列表数据

JsonArray,当然这个只是我的组合方式,这个组合最好是根据项目的实际需求来,

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();
String[] mysqlParameter=new String[]{};
ResultSet returnData=MySqlHepler.executeQuery("select * from infosheet", mysqlParameter);
JSONArray array;
try {
//JSON最外层的JsonObject
JSONObject masterJsonObject=new JSONObject();
//JSon内部的列表数据->这里的数据是从数据库返回的
array=ResultToJsonTool.resultSetToJsonArry(returnData);
//这里另一个存放子数据的JSonObject我暂时就自己随便组合了
JSONObject songJsonObject=new JSONObject();
songJsonObject.put("Token", "12345678");
songJsonObject.put("userName", "xiaoming");
songJsonObject.put("userType", "2");
//将列表数据和子JsonObjectput到masterJsonObject
masterJsonObject.put("dataList", array);
masterJsonObject.put("shareObject",songJsonObject);
out.println(masterJsonObject.toString());
} catch (SQLException | JSONException e1) { e1.printStackTrace();
} }

本人做的一款androidApp,积分墙下载可兑支付宝红包,无广告看最新国内外大片,各种当前热门H5页游,淘宝天猫高额购物券!!:扫描下载,多谢支持!若有需要做此类产品的可以联系我:2819936788,各类数据API接口!(手机/流量/QB/游戏/淘宝客高额优惠券/超便宜的代理IP API/产品推广工具API)

 

java servlet Json.org.jar的更多相关文章

  1. java servlet+jquery+json学习小例子

    引入JSON的jar包: 注意,如果包不全,页面请求servlet时,jquery ajax会返回error:function 弹出error occured!!! HTML Code: <%@ ...

  2. java servlet+mysql全过程(原创)

    前段时间写过一篇 servlet+oracle的文章,但是那是因为公司有可能接那么一个项目,然后我当时也比较闲,所以随便学了下,那玩意是白去研究了,因为公司后面并没接到那项目. 这次学servlet用 ...

  3. java servlet+oracle 新手可看

    最近公司领导告诉接下去接的一个产品,可能会涉及到oracle数据库,以前用得最多的是mssql,前些时间学了下mysql也算少许用过.oracle没接触过.应为我之前做过.net开发,所以数据访问接口 ...

  4. Java 的 JSON 开源类库选择比较(zz)

    在看了作者的介绍,然后我又到mvnrepository上去看了各个库的的使用数之后,发现只能在jackson和gson之间做选择. 以下是原文 有效选择七个关于Java的JSON开源类库 April  ...

  5. java中json包的使用以及字符串,map,list,自定义对象之间的相互转换

    做一个map和字符串的转换,需要导入这些jar包,这是最基本的一些jar包. 经过多方尝试得出结论入下: 首先导入基本包:json-lib-2.2.3-jdk15.jar 如果没有这个jar包,程序是 ...

  6. Java Servlet 技术简介

    Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么 ...

  7. 把java文件打包成.jar (jar命令详解)

    把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...

  8. 【Java】Java Servlet 技术简介

    Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么,它们是如何工作的,如何使用它们来创 ...

  9. Java之JSON数据

    特别注意:使用JSON前需要导包 操作步骤地址:http://blog.csdn.net/baidu_37107022/article/details/70876993 1.定义 JSON(JavaS ...

随机推荐

  1. Java对象序列化---转载

    1.概念 序列化:把Java对象转换为字节序列的过程. 反序列化:把字节序列恢复为Java对象的过程. 2.用途 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个 ...

  2. MVVM架构~knockoutjs系列之包括区域级联列表的增删改

    返回目录 这个例子我做了几次,之前总是有BUG,目前测试后,确定没有BUG才发上来的,主要功能是实现“我的银行”模块的增删改的功能,这个里面包括了级联列表的区域选择,这部分是难点,在开发过程中,我们应 ...

  3. Kafka与Logstash的数据采集对接 —— 看图说话,从运行机制到部署

    基于Logstash跑通Kafka还是需要注意很多东西,最重要的就是理解Kafka的原理. Logstash工作原理 由于Kafka采用解耦的设计思想,并非原始的发布订阅,生产者负责产生消息,直接推送 ...

  4. fir.im Weekly - 600个 Android 开源项目汇总

    本期 Weekly 收集了一些热度资源,包含 Android.iOS 开发工具与源码分享,程序员也应该了解的产品运营.设计等 Tips ,希望对你有帮助. 600个Android开源项目汇总 勤劳的 ...

  5. WPF中关于自定义控件的滚动条鼠标停留在内容上鼠标滚轮滚动无效的问题

    问题起因:在一个用户控件里放置了1个TreeView垂直顺序放置. 当用户控件中的内容超过面板大小时,滚动条会自动出现 ,但是只有当鼠标指示在右边滚动条的那一条位置时,才支持鼠标滚轴滚动. 点在控件内 ...

  6. PHP_01之PHP概述、数据、语法

    1.定义:PHP Hypertext Preprocessor,超文本预处理器,服务器端脚本语言:2.环境:WAMP:Window+Apache+PHP+MySQL: LAMP:Linux+Apach ...

  7. Python数据类型之“数字(numerics)”

    上一节内容说的是"Python基本语法",本节主要讲下Python中的数据类型. 存储在内存中的数据通常有两个属性: 在内存中的存放位置:这个存放位置通过变量名可以找到: 在内存中 ...

  8. linker command failed with exit code 1 (use -v to see invocation)

    背景:用U盘从另一台电脑考过来后,出现错误 linker command failed with exit code 1 (use -v to see invocation) 出现这种情况很可能是,项 ...

  9. hibernate(四)ID生成策略

    一.ID生成策略配置 1.ID生成方式在xml中配置方式: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping P ...

  10. Android属性动画之ValueAnimation

    ValueAnimation是ObjectAnimation类的父类,经过前几天的介绍,相信大家对ObjectAnimation有了 一定的认识,今天就为大家最后介绍一下ValueAnimation, ...