gson

Java和JSON的转换实战

断了今生、忘了曾经 提交于 2020-04-28 12:42:14
一 点睛 1 说明 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json的支持(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这样就使得JSON成为理想的数据交换格式。 数据交换格式,是指客户端和服务器之间通信,传递数据时,数据使用的格式是json。 这里介绍三种常用的转换 1 对象和JSON字符串的相互转换。 2 List和JSON字符串的相互转换。 3 Map和JSON字符串的相互转换。 这里使用谷歌提供的gson工具类。 2 POM <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency> 二 代码 1 实体类 /** * Copyright (C), 2020-2020, 软件公司 * FileName: Scenery * Author: cakin * Date: 2020/4/27 * Description: 实体类 */ package json; import lombok

JSON在Java中的相互转换

为君一笑 提交于 2020-04-27 15:11:49
什么是JSON? JSON (JavaScript Object Notation) 是一种 轻量级 的 数据交换格式 。 易于人阅读和编写。同时也易于机器解析和生成。 JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json的支持(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这样就使得JSON成为理想的数据交换格式。 数据交换格式,是指客户端和服务器之间通信,传递数据时,数据使用的格式是json JSON在java中的使用 json在java中操作,需要用到 歌提供的gson工具类 public class GsonTest { @Test public void test ( ) { Scenery scenery = new Scenery ( 1 , "天坛公园" , "北京" ) ; // Javabean 转换成 json 字符串 // 创建谷歌的 gson 提供的工具类 Gson gson = new Gson ( ) ; // 使用 toJson() 方法转换 String json = gson . toJson ( scenery ) ; System . out . println ( json ) ; //结果 : {"id":1,"name":"天坛公园","address":"北京"} //

andorid jar/库源码解析之retrofit2

牧云@^-^@ 提交于 2020-04-27 07:45:56
目录: andorid jar/库源码解析 Retrofit2:   作用:      通过封装okhttp库,来进行web通讯,并且使用动态代理的方式,来调用接口地址,通过回调赋值结果。   栗子:   定义一个接口,用于访问使用。 public interface IServiceApi { @FormUrlEncoded @POST( "login" ) Call <LoginResult> login(@Field("name") String name, @Field("pwd" ) String pwd); @GET( "getinfo" ) Call <UserInfo> getinfo(@Query("token" ) String token); @GET( "getinfo2" ) Call <UserInfo> getinfo2(@Query("token" ) String token); }   调用接口1.可以在main中调用,因为是通过异步执行(enqueue) Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create()).baseUrl("http://192.168.86.11:8087/" ).build();

Netty中json编解码器(gson实现编码 fastjson实现解码)

谁说胖子不能爱 提交于 2020-04-26 17:36:35
1.ProtoMgr.java package com.my.Game.Proto; import com.alibaba.fastjson.JSON; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class ProtoMgr { static private GsonBuilder gb = new GsonBuilder(); static private final Gson gson; static { gb.disableHtmlEscaping(); gson = gb.create(); } /** * json编码器 * * @param ctype * @param body * @return */ public static String jsonEncode(int ctype, Object body) { String json = gson.toJson(new Body(ctype, body)); return json; } /** * json解码器 * * @param json * @param tClass * @param <T> * @return */ public static <T> T jsonDecode(String

SpringBoot + Redis:基本配置及使用

眉间皱痕 提交于 2020-04-25 01:59:32
注:本篇博客SpringBoot版本为2.1.5.RELEASE,SpringBoot1.0版本有些配置不适用 一、SpringBoot 配置Redis   1.1 pom 引入spring-boot-starter-data-redis 包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>   1.2 properties配置文件配置redis信息   默认连接本地6379端口的redis服务,一般需要修改配置,例如: # Redis数据库索引(默认为0) spring.redis.database =0 # Redis服务器地址 spring.redis.host =127.0.0.1 # Redis服务器连接端口 spring.redis.port =6379 # Redis服务器连接密码(默认为空) spring.redis.password = # 连接池最大连接数(使用负值表示没有限制) spring.redis.jedis.pool.max -active=20 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.jedis.pool.max

微信小程序http连接访问解决方案

旧城冷巷雨未停 提交于 2020-04-24 20:32:00
HTTP + 加密 + 认证 + 完整性保护 = HTTPS,小程序考虑到信息安全的问题,选用了更为稳定安全的https 来进行信息传递。 HTTPS 协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。 这就导致了许多好用的http API无法在小程序中被调用。 但是也有解决方案。 1.中继访问 中继访问有两种方式,一种需要自己拥有一个云服务和域名。 拥有域名和云服务器 域名完成备案之后下载证书 https指引教程如下------> 腾讯云上免费部署HTTPS 再讲域名解析到你的云服务器的IP。 这样子你的域名就是https的了,小程序可以访问你的服务器了,现在就开始在云服务上实现访问http API 服务 实际上只需要面向小程序和API Server 做一个双面响应即可。 实现这种功能,显而易见,在服务器上部署一个Web项目是最简单的实现方式: 我们以访问豆瓣图书API 为例:https://api.douban.com/v2/book/isbn/ 豆瓣API虽然是https的,但是来自小程序的访问是被禁止的。下面代码同样适用于http 连接 Java代码: 这个是 通用代码 ,无论是访问什么API package DataService; import java.io.BufferedReader; import java

真能一快遮"百丑"?为什么要弃坑FastJson

不打扰是莪最后的温柔 提交于 2020-04-20 01:51:43
一、FastJson为何物 首先抄录一段来自官网的介绍:FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 FastJson是Java程序员常用到的类库之一,相信点开这个页面的你,也肯定是程序员朋友。正如其名,“快”是其主要卖点。 二、真的很快吗? 没有调研就没有发言权,本着“追求真理”的初心,来一轮简单的测试。对比对象选择应用最广泛的Jackson和Google出品的Gson。测试环境选择JDK 8,AMD 3700X,3200MHZ内存。简化实验,只测试简单对象和复杂对象的String转对象、对象转String,调用1千万次的对比结果如下(时间单位是毫秒): 从测试结果看,FastJson确实是最快的,但仅比Jackson快20%左右,Google的Gson是最慢的,差距较大。读到这里,是不是觉得选择FastJson肯定没错啊!如果面试官问为什么选择FastJson?因为快!这一个理由就可以把他顶回去了。 这里的调查研究并不是很充分,没有对内存占用、大文档的测试。 在现代应用程序中,即使最慢的Gson,也是满足需求的;解析文档速度的快慢,并不能作为选型的唯一标准,可能连主要标准都算不上。对IO优化,并行处理等优化措施,比选用一个更快的库更有效。 三

SpringCloud文件夹上传解决方案

我的梦境 提交于 2020-04-18 13:09:31
1,项目调研 因为需要研究下断点上传的问题。找了很久终于找到一个比较好的项目。 在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面。 https://github.com/freewebsys/java-large-file-uploader-demo 效果: 上传中,显示进度,时间,百分比。 点击【Pause】暂停,点击【Resume】继续。 2,代码分析 原始项目: https://code.google.com/p/java-large-file-uploader/ 这个项目最后更新的时间是 2012 年,项目进行了封装使用最简单的方法实现了http的断点上传。 因为html5 里面有读取文件分割文件的类库,所以才可以支持断点上传,所以这个只能在html5 支持的浏览器上面展示。 同时,在js 和 java 同时使用 cr32 进行文件块的校验,保证数据上传正确。 代码在使用了最新的servlet 3.0 的api,使用了异步执行,监听等方法。 上传类UploadServlet @Component("javaLargeFileUploaderServlet") @WebServlet(name = "javaLargeFileUploaderServlet", urlPatterns = { "

API Request | OkHttp | api request via okhttp with two objects

不打扰是莪最后的温柔 提交于 2020-04-18 05:43:35
问题 im new in API Networking so here comes a question about it. Best beginning ever, but i had too much code... the json file i want to parse: { "id":"541.23", "username":"exampleUser", "links":{ "TWITTER":null, "YOUTUBE":"https://www.youtube.com/user/exampleUser" "INSTAGRAM":null, "TWITCH":null, "MIXER":"https://mixer.com/user/" "DISCORD":"DiscordUser#4576" } } for this code is used okhttp and gson: class MainActivity : AppCompatActivity() { lateinit var playerStats: PlayerStats override fun

How to deserialize nested JSON array in Java with Gson? [closed]

╄→尐↘猪︶ㄣ 提交于 2020-04-17 18:58:26
问题 Closed. This question needs debugging details. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 3 hours ago . Something wrong in creating structure of Java Model Class for Deserializing this type of json [ { "name": "Chapter 1", "samples": [ { "name": "Topic 1", "uri": "video link url 1", "extension": "mpd" }, { "name": "Topic 2", "uri": "video link url 2", "extension": "mpd" } ] }, { "name": "Chapter 2",