java使用json配置_1.2.6 在Java中使用JSON(1)

1.2.6 在Java中使用JSON(1)

1. Gson概述

Gson是谷歌的一个开源项目,其作用是在Java对象和JSON之间实现相互转换。大家可登录http://code.google.com/p/google-gson/下载***版本,本书使用的版本是1.6版,本节的示例都将使用该版本。

Gson的功能很多,这里囿于篇幅就不一一介绍了。本节的重点是讲述如何使用Gson生成Ext JS格式的返回数据。

2. 配置Gson

要使用Gson,将gson-1.6.jar文件复制到项目的“lib”目录就行了。譬如在动态Web项目中使用Gson,将文件复制到“\WebContent\WEB-INF\”下的lib目录即可。

要引用Gson,需在引用文件中加入以下代码:import com.google.gson.*;

你也可以根据需要细化引用。

3. 使用Gson

要生成1.2.5节中介绍的JSON格式数据,需要使用JsonObject和JsonArray两个对象,这两个对象的详细说明如表1-2所示。

表1-2 JsonObject与JsonArray的详细说明

ec0e9ca7edb10def2bfcc1f7c56368e4.png

这两个对象是如何使用的,请看下面的代码:StringconnectionUrl="jdbc:sqlserver://192.168.0.254:1433;"+

"databaseName=Northwind;;user=sa;password=abcd-1234";

Connectioncon=null;

Statementstmt=null;

ResultSetrs=null;

try {

//使用JDBC从数据库获取数据Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

con=DriverManager.getConnection(connectionUrl);

StringSQL="SELECT CustomerID,CompanyName,ContactName "+

"FROM Customers order by CompanyName";

stmt=con.createStatement();

rs=stmt.executeQuery(SQL);

intcount=0;  //计算记录总数

//构建数据列表

JsonArrayarray=newJsonArray();

while (rs.next()) {

//构建每行数据对象

JsonObjectobj=newJsonObject();

obj.addProperty("id", rs.getString("CustomerID"));

obj.addProperty("cpname", rs.getString("CompanyName"));

obj.addProperty("contactName", rs.getString("ContactName"));

array.add(obj);

count++;

}

//构建返回格式数据

JsonObjectjson=newJsonObject();

json.addProperty("totals", count);

json.add("rows", array);

response.getWriter().write(json.toString());

rs.close();

}

catch (Exception e) {

response.getWriter().write(e.getMessage());

}

finally {

if (rs != null) try { rs.close(); } catch(Exception e) {}

if (stmt != null) try { stmt.close(); } catch(Exception e) {}

if (con != null) try { con.close(); } catch(Exception e) {}

}

代码中,注释“构建数据列表”之前的代码是实现数据库查询数据的,而我们的重点是JSON,所以我们的关注点是注释下面的代码。因为Gson不支持LINQ to JSON,所以我们必须一步步地构建JOSN数据。

首先创建一个JsonArray对象,准备在循环中插入数据。在while循环中,每行数据就是一个JsonObject对象,因而要创建新的JsonObject对象,然后使用addProperty方法将每列数据添加到JsonObject对象中,***是将这个JsonObject对象使用JsonArray的add方法添加到数组中。这样,要返回的数据列表就构建完成了。

***一步就是构建最外层的JsonObject对象,这个步骤比较简单。首先是使用addProperty方法添加记录总数,然后使用add方法将JsonArray对象作为“rows”的值添加到JsonObject对象中,***使用toString方法转换成字符串返回客户端。在这里要注意JsonObject对象的addProperty方法和add方法的区别,addProperty方法是用来添加原生数据类型的,而add方法是用来添加JsonElement(包括JsonObject、JsonArray、JsonPrimitive和JsonNull)对象的,详细的说明可阅读Gson的API。

【责任编辑:book TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值