下载地址:http://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.5

在项目导入jar包后

package com.web;

import com.dao.BookInMemoryDAO;
import com.entity.Book;
import com.google.gson.Gson; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List; @WebServlet("/book/text")
public class ServletTest extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     //设置请求编码
request.setCharacterEncoding("utf-8");
     //设置响应数据格式
response.setContentType("application/json;charset=utf-8");
     //设置响应请求
response.setCharacterEncoding("utf-8");
     //获取数据
List<Book> books = new BookInMemoryDAO().listAll();
     //将数据转为json格式
     //调用Gson的方法
String s = new Gson().toJson(books);
     //将数据渲染出去
response.getWriter().print(s); }
}

  运行结果:

示例:

     public List<Car> listCars() {
//借助redis的高效能力,让redis作为数据的缓存 //打开 redis
Jedis jedis = new Jedis();
//json 序列化
Gson gson = new Gson();
//判断 redis 中 有没有 这个 键值 有的话,直接取 redis 中的数据
if (jedis.exists("cars")) {
List<Car> cars = gson.fromJson(jedis.get("cars"), new TypeToken<List<Car>>() {}.getType());
return cars;
}
//去数据库中 查询
List<Car> cars = car.listCars();
//存储到redis中
jedis.set("cars",gson.toJson(cars)); return cars;
}

结果:

[Car{id=1, name='宝马', speed=6.34}, Car{id=2, name='悍马', speed=8.4}, Car{id=3, name='大魔王', speed=8.8}]

简单的使用Gson (序列化 和 反序化)的更多相关文章

  1. 将 对象序列化与反序化 (json格式)

    实体类 package com.nf.redisDemo1.entity; public class News { private long id; private String title; pri ...

  2. C#反序化json字符串,不用区分大小写

    最近在做第三方对接的项目,接口返回的数据是json格式,并且每个字段都是小写的,而我们程序类中的属性是要求大写的:刚开始想到的是用JavaScriptSerializer,但是这个并不满足需求 就换了 ...

  3. pojg2744找一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是y的子串,或者x中的字符反序之后得到的新字符串是y的子串。

    http://poj.grids.cn/practice/2744 描述现在有一些由英文字符组成的大小写敏感的字符串,你的任务是找到一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是 ...

  4. Gson序列化对象如何忽略字段

    Gson序列化对象如何忽略字段 Gson版本 2.8.2 梗概 用注解@Expose(serialize = false, deserialize = false)在类的成员上以告诉Gson 跳过本字 ...

  5. Excel反序排列

    实际工作中有这样一个需求,将Excel列表中所有的条目进行反序排列,有人说这还不简单直接选中某一列按照这列排序(升序或降序)就可以了. 但问题是这里没有可以参考的列,进行排序. 比如: 想转换为: 那 ...

  6. 完全理解Gson(2):Gson序列化

    通过调用 Gson API 可以把 Java 对象转换为 JSON 格式的字符串(项目主页).在这篇文章中,我们将会讲到如何通过 Gson 默认实现和自定义实现方式,将 Java  对象转换为 JSO ...

  7. 找一个四位数,要求该四位数的四倍刚好是该四位数的反序。 即b1b2b3b4 * 4 = b4b3b2b1

    找一个四位数,要求该四位数的四倍刚好是该四位数的反序. 即b1b2b3b4 * 4 = b4b3b2b1 解: 第一步,确认最末位 假设 b1b2b3b4 + b4b3b2b1 = [x0]x1x2x ...

  8. Django的列表反序

    Django虽然是python的web框架,但它不是所有的python特性都支持的. 最近在项目中遇到一个问题,需要在Django中将获得的列表反序排列,一开始我使用的是python的reverse方 ...

  9. leetcode:Reverse Integer(一个整数反序输出)

    Question:Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 ...

随机推荐

  1. php 解决跨域问题

    header('Access-Control-Allow-Origin:*');header('Access-Control-Allow-Methods:POST,GET,OPTIONS');head ...

  2. F. 汤圆防漏理论

    ghc很喜欢吃汤圆,但是汤圆很容易被粘(zhān)漏. 根据多年吃汤圆经验,ghc总结出了一套汤圆防漏理论: 互相接触的汤圆容易粘(zhān)在一起,并且接触面积不同,粘(zhān)在一起的粘(niá ...

  3. pb datawindow的用法

    1. 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下:将每一列的 Pr ...

  4. django 支持跨域请求配置

    参考:https://www.jianshu.com/p/63fb55bee142 核心注意点:

  5. create-react-app创建项目修改配置项的两种方法

    方法一:eject 打开 package.json ,可以看到eject.运行 npm run eject 可以让由create-react-app创建的项目的配置项暴露出来. { ... " ...

  6. O060、Restore Volume 操作

    参考https://www.cnblogs.com/CloudMan6/p/5668872.html   前面我们学习了backup操作,现在我们来学习如何使用backup进行restore.   r ...

  7. opencv3.3 CUDA 初学实例

    //swap.cu #include "cuda_runtime.h" #include "device_launch_parameters.h" #inclu ...

  8. 实现div可以调整高度(div实现resize)

    实现div可以调整高度(div实现resize) 一.div 实现resize(类似textarea) 代码如下: <!DOCTYPE html> <html> <hea ...

  9. 密码基础知识(2)以RSA为例说明加密、解密、签名、验签

    密码基础知识(1)https://www.cnblogs.com/xdyixia/p/11528572.html 一.RSA加密简介 RSA加密是一种非对称加密.是由一对密钥来进行加解密的过程,分别称 ...

  10. Fiddler抓取手机APP程序数据包

    1.下载并安装Fiddler 下载地址:https://www.telerik.com/download/fiddler 2.设置Fiddler可监听远程通讯 前提条件:需要监听的手机和Fiddler ...