gson

你真的会用Gson吗?Gson使用指南(一)

╄→гoц情女王★ 提交于 2020-02-29 19:26:24
你真的会用Gson吗?Gson使用指南(一) JSON (官网) 是一种文本形式的数据交换格式,它比XML更轻量、比二进制容易阅读和编写,调式也更加方便。其重要性不言而喻。解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson等,本次我向大家介绍的是Gson。 本篇文章的主要内容: Gson的基本用法 属性重命名 @SerializedName 注解的使用 Gson中使用泛型 一、Gson的基本用法 Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化。同时每个方法都提供了重载方法,我常用的总共有5个。 基本数据类型的解析 Gson gson = new Gson(); int i = gson.fromJson("100", int.class); //100 double d = gson.fromJson("\"99.99\"", double.class); //99.99 boolean b = gson.fromJson("true", boolean.class); // true String str = gson.fromJson("String", String.class); // String 注:不知道你是否注意到了第2

Gson的基本使用

时光总嘲笑我的痴心妄想 提交于 2020-02-29 18:41:16
之前开发项目都是使用xUtils和fastjson,配合现在的工作需要,有必要学习一下Volley和Gson。 本文主要关于Gson。 1 //一个实体类 2 public class Person { 3 private String name; 4 private int age; 5 6 public String getName() { 7 return name; 8 } 9 public void setName(String name) { 10 this.name = name; 11 } 12 public int getAge() { 13 return age; 14 } 15 public void setAge(int age) { 16 this.age = age; 17 } 18 19 public String toString() 20 { 21 return name + ":" +age; 22 } 23 24 25 } 26 27 // 得到json 28 private String getJson(){ 29 List<Person> person = new ArrayList<Person> (); 30 for (int i = 0; i < 5 ; i++){ 31 Person p = new Person(); 32 p

安卓常用github库的收集

旧城冷巷雨未停 提交于 2020-02-28 04:59:06
安卓轮播组件 https://github.com/youth5201314/banner 安卓tab切换 https://github.com/LuckyJayce/ViewPagerIndicator 图片加载器 https://github.com/nostra13/Android-Universal-Image-Loader 网络请求 https://github.com/square/okhttp 解析json gson 来源: oschina 链接: https://my.oschina.net/hongjiang/blog/3176013

JavaScript文件分片上传,断点续传

六眼飞鱼酱① 提交于 2020-02-28 03:29:37
这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 public class FileInf { public FileInf(){} public String id=""; public String pid=""; public String pidRoot=""; /** * 表示当前项是否是一个文件夹项。 */ public boolean fdTask=false; // /// 是否是文件夹中的子文件 /// </summary> public boolean fdChild=false; /** * 用户ID。与第三方系统整合使用。 */ public int uid=0; /** * 文件在本地电脑中的名称 */ public String nameLoc=""; /** * 文件在服务器中的名称。 */ public String nameSvr=""; /** * 文件在本地电脑中的完整路径。示例:D:\Soft\QQ2012.exe */ public String pathLoc=""; /** * 文件在服务器中的完整路径。示例

【Java Web_13】Ajax、Json

橙三吉。 提交于 2020-02-26 19:20:00
一、Ajax 1. $.ajax() * 语法:$.ajax({键值对}); //使用$.ajax()发送异步请求 $.ajax({ url:"ajaxServlet1111" , // 请求路径 type:"POST" , //请求方式 //data: "username=jack&age=23",//请求参数 data:{"username":"jack","age":23}, success:function (data) { alert(data); },//响应成功后的回调函数 error:function () { alert("出错啦...") },//表示如果请求响应出现错误,会执行的回调函数 dataType:"text"//设置接受到的响应数据的格式 }); 2. $.get():发送get请求 * 语法:$.get(url, [data], [callback], [type]) * 参数: * url:请求路径 * data:请求参数 * callback:回调函数 * type:响应结果的类型 3. $.post():发送post请求 * 语法:$.post(url, [data], [callback], [type]) * 参数: * url:请求路径 * data:请求参数 * callback:回调函数 * type:响应结果的类型 二、json

秒杀系统设计

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-26 16:45:51
如果排版等有问题,移步个人博客 https://zheyday.github.io/ 秒杀系统是整个cloud项目中的一部分,具体代码在seckill模块 https://github.com/zheyday/SpringCloud-zcs 准备工作 新建一个JMeter测试计划,添加如下内容 添加步骤: 右击测试计划 --> 添加 --> 线程 (用户)--> 线程组,线程数设置5000,Ramp-Up设为1,也就是1启动5000个线程 右击线程组 --> 添加 -->取样器 --> HTTP请求,配置要访问的路径 右击HTTP请求 --> 添加 --> 配置元件--> HTTP信息头管理器,这个下面说明 右击线程组 --> 添加 -->监听器 -->察看结果树/聚合报告 说明一下: 由于所有的资源都被OAuth2保护起来了,所以想要访问必须要经过登陆授权的步骤,为了方便起见,先在浏览器正常访问一个资源进行授权,然后获取里面的cookie值,放入HTTP信息头管理器中 在Cookie中有个 JSESSIONID ,把它们整个放到HTTP信息头管理器 测试 一、最简单的加锁 程序加synchronized锁,先读取数据库信息,然后自减,再更新,所有的逻辑操作都在程序中完成 @GetMapping("/order") public String reduceStack(@Param(

Intro to Feign

依然范特西╮ 提交于 2020-02-26 11:15:50
1. Overview In this tutorial, we will introduce and explain Feign , a declarative HTTP client developed by Netflix. Feign aims at simplifying HTTP API clients. Simply put, the developer needs only to declare and annotate an interface while the actual implementation will be provisioned at runtime. 2. Example We will present an example of a bookstore service REST API , that is queried and tested based on the Feign HTTP client. Before we build a sample Feign client, we'll add the needed dependencies and startup the REST service. The bookstore service example can be cloned from here . After

gson Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path

▼魔方 西西 提交于 2020-02-26 11:13:59
返回数据解析错误 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path 期望返回一个对象但是却返回了一个数组 解决办法: 1.在参数中修改期望返回类 Student 为 LIst< Student>,这样才能解析到数据。 2.用 TypeToken 转一下: Gson gson = new Gson(); String result = response; ArrayList<Student> list = new ArrayList<Student>(); Type listType = new TypeToken<List<Student>>() {}.getType(); list = gson.fromJson(result, listType);===== 原因是数据的前后多了[ ]中括号。 String gsonStr1= "[{name:'name0',age:0}]"; 解决办法: 将前后的中括号去掉就好了。 //修改后{name:'name0',age:0},要去掉前后的括号。 String gsonStr1= "{name:'name0',age

Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2

廉价感情. 提交于 2020-02-26 11:12:00
原因是解析的时候多了,逗号,或是 \ 解决方法:一 revJson=revJson.replace("\\", "");//去掉'/' revJson = revJson .substring(1, revJson .length()-1); //去掉头尾引号。 简单对象解析: BeanOrderIntent beanOrder = (BeanOrderIntent) DubJson. fromJson(result , BeanOrderIntent. class) ; List解析 Gson gson = new Gson();List<BeanOrderConfirm> beanOrderConfirm = gson.fromJson(deliveryData, new TypeToken<List<BeanOrderConfirm>>() {}.getType()); 解决方法二: 这个问题自己对照Bean类, 原因出在Sting 和List 的转换错误,或是String 和其它转错误 1.把集合改成数组即可 2.把String转成json需要的格式 来源: https://www.cnblogs.com/dubo-/p/8301967.html

spring boot aop打印出入参配置(自定义注解)

拟墨画扇 提交于 2020-02-26 07:48:38
DB操作出入参日志打印AOP配置 背景 :目前项目做中台建设,要求统一打印DB操作的出入参,并以json格式输出。 方案描述: 基于Spring Boot项目,通过自定义注解,使用AOP对自定义注解配置前置通知、后置通知对参数进行处理。日志处理使用slf4j处理,需要打印日志的类只需添加@Slf4j注解。@Profile({"dev", "test", ” prod ” })可以配置在配置切面的类上,这样可以选择在哪个环境使用该切面配置。 实施步骤: Spring项目添加maven依赖spring-boot-starter-aop注入AOP功能,添加gson依赖注入json输出功能。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> </dependency> 自定义注解,如下定义 @Retention(RetentionPolicy.RUNTIME) @Target(