关于Struts2- Gson的使用
来源:互联网 发布:高程测量数据处理软件 编辑:程序博客网 时间:2024/06/03 07:27
一、什么是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>
json 主页 http://www.json.org
转载自:http://perfectplan.iteye.com/blog/1561953
- 关于Struts2- Gson的使用
- 关于Gson的使用
- struts2中Jquery的Gson使用(最简单的例子)
- 关于gson的解析
- 关于使用Gson解析entity中遇到的问题
- android-关于Gson和json的解析转化使用
- 关于struts2通配符的使用
- Google-Gson的使用
- gson的使用
- Gson的使用
- android gson的使用
- android Gson的使用
- Gson的使用
- gson的使用
- Gson的使用汇总
- Gson的使用
- java gson的使用
- gson的使用
- 机房收费系统合作版准备工作
- linux awk 内置函数详细介绍(实例)
- 郑厂长系列故事——逃离迷宫
- Citrix 服务器虚拟化之二十三 桌面虚拟化之Provisioning Services与XenDesktop结合
- Unity3d 血条/进度条制作
- 关于Struts2- Gson的使用
- 关于Segmentation fault (core dumped)几个简单问题的整理
- 威威猫系列故事——吃鸡腿
- Socket连接
- hdu 4081 Qin Shi Huang's National Road System(次小生成树变形)
- 完美解决android library projects cannot be launched
- unity3d 加载进度条<带图,带当前加载百分之多少>
- text-shadow
- HDU 4675 GCD of Sequence