关于Struts2- Gson的使用
一、什么是Google-Gson?
:Gson这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。
Gson支持任意复杂Java对象包括没有源代码的对象。它的比struts2提供的json插件的操作更加简单明了。
二 、使用Google-Gson需要什么配置?
:我们需要下载Gson.jar将它放入web项目的lib包中
三、方法简介。
:Googe-Gson提供了两种重要的方法
1.toJson(); //将一个对象转换成JSON对象
2.fromJson();//将一个JSON对象转换成一个对象
//对于这两个方法有很多的重载方法
四、具体实例:
JavaBean:
package org.viancent.domain;
import java.util.Date;
import org.apache.struts2.json.annotations.JSON;
public class Person {
private int pid;
private String pname;
private int page;
private String address;
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Action:
package org.viancent.action;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import javax.xml.crypto.Data;
import org.apache.struts2.ServletActionContext;
import org.apache.taglibs.standard.lang.jstl.parser.Token;
import org.viancent.domain.Person;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.opensymphony.xwork2.ActionSupport;
public class GetGsonAction extends ActionSupport {
private String Gson; //这里是为了获取界面传过来的JSON文本
public String getGson() {
return Gson;
}
public void setGson(String gson) {
Gson = gson;
}
@Override
public String execute() throws Exception {
//创建一个集合
List<Person> list = new ArrayList<Person>();
//创建一个person对象
Person person = new Person();
person.setPid(1);
person.setPname("张三");
person.setPage(15);
person.setDate(new Date());
//创建一个person对象
Person person1 = new Person();
person1.setPid(2);
person1.setPname("李四");
person1.setPage(20);
person1.setDate(new Date());
//将person对象添加到集合中去
list.add(person);
list.add(person1);
//创建Gson对象
Gson gson = new Gson();
//使用toJson方法将集合转换成String数组
String result = gson.toJson(list);
//创建HttpServletResponse
HttpServletResponse response = ServletActionContext.getResponse();
//设置编码格式,以及信息类型 及 是否有缓存的设置
response.setContentType("application/json;charset=utf-8");
response.setHeader("caChe-Control", "no-cache");
//创建PrintWriter 对象 将信息写入到Reponse中
PrintWriter out =response.getWriter();
out.print(result);
//清空缓存
out.flush();
//关闭
out.close();
/*************************************测试 GSON的fromJson方法**********************************************************/
//创建fromJson转换时需要的类型,注意对于特殊的结合需要使用这个方法,其他普通对象则可以直接使用 *.class
Type listtype = new TypeToken<List<Person>>() {}.getType();//这里使用了一个匿名类
//使用Gson的fromJson方法
/*
* 这里我们选择有两个参数的重在方法 fromJson(String,class<T>);
*
* String :需要转换成集合的JSON文本
*
* class<T> :转换集合的类型
* */
List<Person> lists = gson.fromJson(this.getGson(), listtype);
//输入信息
System.out.println(lists.get(0).getPname());
return null;
}
}
JSP:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="WEB-JS/jquery-1.5.1.js"></script>
</head>
<body id="theBody">
<script type="text/javascript">
function getAllInfo() {
$.post("/struts2/getgsons.action", {
Gson:"[{'pid':1,'pname':'张三','page':15,'date':'2011-3-21 15:36:52'},{'pid':2,'pname':'李四','page':19,'date':'2012-3-21 15:36:52'}]"
}, function(returnedData, status) {
if ("success" == status) {
for ( var i = 0; i < returnedData.length; i++) {
alert(returnedData);
}
}
})
}
</script>
<input type="button" value="Get All Info" onclick="getAllInfo();">
</body>
</html>
Gson下载地址:
http://code.google.com/p/google-gson/downloads/detail?name=google-gson-2.2.1-release.zip
分享到:
相关推荐
struts2~json~gson~jquery~ajax简单应用
gson-2.2.4.jar guava-r09.jar httpclient-4.4.jar httpcore-4.4.jar jackson-annotations-2.5.0.jar jackson-core-2.5.0.jar jackson-core-asl-1.9.2.jar jackson-databind-2.3.4.jar jackson-databind-2.5.0.jar ...
1、 同时使用了Struts2、Spring4、Hibernate4、Quartz、JUnit4、Log4j、SLF4J、Ehcache、Gson等库或框架,搭建一个最基本的项目原型。 2、 Spring配置提供了多种可选整合方案:详见applicationContext.xml的配置 (1...
· google-gson-2.2.4-release.zip apache-commons框架 · commons-validator-1.3.1-src.zip · commons-lang3-3.2.1-src.zip · commons-fileupload-1.2.1-src.zip · commons-dbutils-1.3-bin.zip · ...
Eclipse+Struts2+Spring+MyBatis+json+gson环境搭建
Struts2.1.8 AJAX 读取XML,GSON,jQuery JSON的案例.
通过Struts2搭建一个简易的javaweb程序,提供了一个login Action,并返回json格式的结果到响应流中。其中利用gson来生成json格式数据。
gson-1.6.jar hibernate-commons-annotations-4.0.5.Final.jar hibernate-core-4.3.8.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar httpclient-4.0.jar httpclient-4.1.1.jar httpcore-4.0.jar ...
json相关的5个jar文件:fastjson-1.2.2.jar,fastjson-1.2.2.zip,fastjson-1.2.2-sources.jar,gson-2.3.1.jar,struts2-json-plugin-2.3.15.1.jar。
NULL 博文链接:https://hi-beijing.iteye.com/blog/1173801
spring3.0+,经典版本,完整架包,包含spring+json+gson+mysql,整理不易,请大家下载后好好使用,有什么欠缺,大家可以回复我。
gson-1.3.jar java到json串的转换 ognl-2.6.11.jar OGNL表达式所需要的包,支持EL htmlparser.jar 强大的html解析器 jcommon-1.0.15.jar 使用java生成图表的工具 freemarker-2.3.8.jar 模板相关...
包含json lib、struts lib、spring lib、ssjdbc整合jar博文地址:http://blog.csdn.net/sapce_fish/article/details/52900750
gson-1.3.jar java到json串的转换 ognl-2.6.11.jar OGNL表达式所需要的包,支持EL htmlparser.jar 强大的html解析器 jcommon-1.0.15.jar 使用java生成图表的工具 freemarker-2.3.8.jar 模板相关操作需要包 ...
在网上想找一个strus1的关于json的使用例子,但是找了半天找不到,最后狠下心自己写了一个,使用的是谷歌的Gson,前台技术jQuery,后台struts1.2.7。希望能帮上那些急需相关知识的初学者。谢谢大家...
lib/gson-2.1.jar lib/hessian-4.0.7.jar lib/hsqldb-1.8.0.10.jar lib/ibatis-sqlmap-2.3.4.726.jar lib/jackson-all-1.9.9.jar lib/javax.inject.jar lib/javax.wsdl-1.6.1.jar lib/jettison-1.1.jar lib...
这个样例是用JQuery ajax和struts来做的一个小样例,在这个样例中采用两种方式将java Util中的list转换成支json的格式,第一种是用json-lib.jar这个jar包来转换,第二种是采用goole的gson-2.1.jar来转换,大家可以...
由于实习需要,需要通过ajax来获取后台的List集合里面的值。由于前面没有接触过,所以今天就来研究下了。 一、首先需要下载JSON依赖的jar包。它主要是依赖如下: json-lib-2.2.2-jdk15 ezmorph-1.0.4 commons-...
j2ee开发包,包含:struts2,hibernate,spring,gson等
j2ee开发资源包,struts2,hibernate,spring,gson,commons等