1、配置struts.xml

        <action name="getGsonAction" class="com.test.action.json.GetGsonAction">
</action>

2、添加js方法

getJson = function(){
$.post("getGsonAction.action",{name:$('#name').val()},function(ret,status){
if("success" == status){ }
});
}

3、添加jsp页面

<html>
<head>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="scripts/common.js"></script>
</head> <body id="xmlbody">
<select id="name">
<option value="james" selected="selected">james</option>
<option value="currey">currey</option>
</select>
<input type="button" value="getInfo" onclick="getJson();"/>
</body>
</html>

4、bean文件

public class Address
{
private String homeAddress;
private String companyAddress; public String getHomeAddress() {
return homeAddress;
}
public void setHomeAddress(String homeAddress) {
this.homeAddress = homeAddress;
}
public String getCompanyAddress() {
return companyAddress;
}
public void setCompanyAddress(String companyAddress) {
this.companyAddress = companyAddress;
}
} package com.test.action.json; import java.util.List; //9分钟
public class People
{
private int id; private String name; private Address address; private List<People> friends; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Address getAddress() {
return address;
} public void setAddress(Address address) {
this.address = address;
} public List<People> getFriends() {
return friends;
} public void setFriends(List<People> friends) {
this.friends = friends;
}
}

5、添加action类

public class GetGsonAction extends ActionSupport {

    private static final long serialVersionUID = 5409431608941107203L;

    public String execute() throws Exception {
List<People> list = new ArrayList<People>();
//第一个人的信息
Address address1 = new Address();
address1.setCompanyAddress("shanghai");
address1.setHomeAddress("beijing"); People people1 = new People();
people1.setId(1);
people1.setName("james");
people1.setAddress(address1); People friend1 = new People();
people1.setId(4);
people1.setName("smith"); People friend2 = new People();
friend2.setId(5);
friend2.setName("owen"); List<People> list1 = new ArrayList<People>();
list1.add(friend1);
list1.add(friend2); people1.setFriends(list1); //第二个人的信息
People people2 = new People();
Address address2 = new Address();
address2.setCompanyAddress("tianjin");
address2.setHomeAddress("tanggu"); people2.setId(2);
people2.setName("currey");
people2.setAddress(address2); List<People> list2 = new ArrayList<People>();
People friend3 = new People();
friend3.setId(7);
friend3.setName("igdala");
list2.add(friend3); People friend4 = new People();
friend4.setId(8);
friend4.setName("toms");
list2.add(friend4); people2.setFriends(list2); list.add(people1);
list.add(people2); Gson gson = new Gson();
String result = gson.toJson(list); HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/json; charset=utf-8");
response.setHeader("Cache-Control", "no-cache");//取消浏览器缓存
PrintWriter writer = response.getWriter();
writer.write(result);
writer.flush();
writer.close();
System.out.println(result);
return null;
}
}

java学习笔记(13) —— google GSON 实现json转化方法的更多相关文章

  1. 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

    一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...

  2. java学习笔记(12) —— Struts2 通过 xml /json 实现简单的业务处理

    XML 1.引入dom4j-2.0.0.jar 2.引入jquery-1.8.2.js 3.新建common.js getInfo = function(){ $.post("getXmlA ...

  3. Java学习笔记-13.创建窗口和程序片

    1.init()方法:程序片第一次被创建,初次运行初始化程序片时调用. start()方法:每当程序片进入web浏览器中,并且允许程序片启动他的常规操作时调用(特殊的程序片被stop()关闭):同样在 ...

  4. Java学习笔记13(面向对象六:super)

    在创建子类对象时,父类的构造方法会先执行,因为子类中所有构造方法的第一行有默认的隐式super();语句 注意:父类构造方法第一行也有隐式的super(); 所有类都有一个"祖宗类" ...

  5. Java学习笔记13(equals()方法;toString()方法)

    equals()方法: equals方法是Object类中的方法:Object是所有类的祖宗,所以所有类都有equals()方法: boolean equals(Object obj); equals ...

  6. Java学习笔记(七)——获取类中方法的信息,java的LinkedList

    [前面的话] 在实际项目中学习知识总是最快和最有效的,既能够较好的掌握知识,又能够做出点东西,还是简单的知识总结,最近一直在总结笔记,写的东西还是比较水,希望慢慢可以写出一些干货. 学习过程中的小知识 ...

  7. 疯狂java学习笔记之面向对象(一) - 定义类、方法、构造器

    Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. ja ...

  8. Effective Java 学习笔记之所有对象都通用的方法

    一.覆盖equals时请遵守通用约定 1.满足下列任何一个条件时,不需要覆盖equals方法 a.类的每个实例本质上都是唯一的.此时就是Object中equals方法所表达的含义. b.不关心类是否提 ...

  9. Java学习笔记——static关键字与静态的使用方法

    static:可以修饰成员变量和成员方法. 当变量被static修饰后,则其可以直接被类名调用.类名.成员. static特点: 随着类的加载而加载: 优先于对象存在: 被所有的对象共享,节省空间,但 ...

随机推荐

  1. Delphi COM编程学习笔记(1)

    释放接口对象,既不是调用MyObj.Free,也不是MyObj.Release;破坏对象的正确方法是将它们设置为nil:MyInterface := nil; 一个接口不能离开实现它的对象而独立存活. ...

  2. java中利用RandomAccessFile读取超大文件

    超大文件我们使用普通的文件读取方式都很慢很卡,在java中为我提供了RandomAccessFile函数,可以快速的读取超大文件并且不会感觉到卡哦,下面看我的一个演示实例. 服务器的日志文件往往达到4 ...

  3. rabbitMQ入门

    1 安装 1.1 首先 arbbitmq是用爱尔兰这种语言去编写的,所以,需要这种语言支持,那就需要下载以下几个包去安装来搭建环境 下载并安装erlang,http://www.erlang.org/ ...

  4. K - The Unique MST - poj 1679

    题目的意思已经说明了一切,次小生成树... ****************************************************************************** ...

  5. cmd 命令设置UTF8

    使用cmd 执行java -jar executable.jar  测试包时,cmd显示中文正常,但是日志文件中中文显示不正常,也导致执行时不能正常做些检测和验证 这是由于cmd命令窗口的编码格式问题 ...

  6. Bootstrap图片旋转轮播的实现

    bootstrap初级知识旋转轮播 源文件:carousel.js.carousel.less CSS文件:bootstrap.css 这些源文件可以从bootstrap中下载,关于轮播,有很多译法, ...

  7. .NET页面301跳转处理

    //301跳转Response.Status = "301 Moved Permanently";Response.AddHeader("Location", ...

  8. Activity进入与退出的动画

    1.在res建立目录anim放入动画效果xml文件 1.1   进入文件  push_left_in.xml <?xml version="1.0" encoding=&qu ...

  9. c++ map与 qt QMap insert 区别

    当插入相同key的字段时, c++  map 会保留原来的字段, QMap 则会取代原来的字段.

  10. Java基础知识强化85:System类之arraycopy()方法(数组拷贝)

    1. arraycopy方法(数组拷贝) public static void arraycopy(object src,int srcPos,Object dest,int destPos, int ...