Notes for a front-end developer, esyou.net

0%

JAVA使用GSON生成JSON数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式。看到ECMAScript了吧,说明是基于JavaScript大库哦。所以在开发中一般Json主要用于传递数据,我们可以通过最基本的JavaScript获得json数据,当然也可以使用Java、C++等语言获取这个json的数据。
如果在做手机应用开发的话,你又不懂Java,你只知道html、JavaScript、css,那么开发手机应用最实用的就是json了吧。大概思路如下:
建立一个Web服务器,建立一个Web程序。使用JavaScript+css建立一个手机app,通过JavaScript获得Web程序生成的Json数据,即可在手机应用上展现出Web上的相关数据咯。具体做法,可以查看我另一篇文章,《利用Cordova,jqurey与wp-rest-api制作一个属于自己博客的移动APP》,今天我要说的是Java中利用google开发的Gson jar包直接获得json数据,相关方法如下:

下载Gson jar包

打开https://github.com/google/gson,找到如下图所示,点击Clone or Download,再点击Download ZIP即可下载

解压后,看到的都是源码,自己使用elipse或者netbeans等java开发工具,自动编译java文件,并打包成jar即可

将Gson jar包放到WEB-INF目录

建立一个Java sevelet,关键代码如下:

1
response.setContentType("text/html;charset=GB2312");
2
try(PrintWriter out = response.getWriter()){
3
    ExecuteDB DB = new ExecuteDB();
4
    String sql = "select * from articles";//SQL语句,查询获得数据库内容
5
    ResultSet rs = DB.exeQuery(sql);
6
    JsonObject object = new JsonObject();
7
    JsonArray array = new JsonArray();
8
    while (rs.next()) {
9
        JsonObject ob = new JsonObject();
10
        ob.addProperty("articleid", rs.getInt("articleid"));//获得数据库字段为articleid的内容
11
        ob.addProperty("title", rs.getString("title"));//获得数据库字段为title的内容
12
        ob.addProperty("content", rs.getString("content").replace("<", "<").replace(">", ">"));
13
        ob.addProperty("createtime", rs.getString("createtime"));<br>array.add(ob);
14
    }
15
    object.add("Article", array);
16
    out.print(object.toString());//使用jsonp进行访问json数据
17
}catch(Exception ex){
18
    System.out.println(ex.toString());
19
}