package com.secusoft.send.utils;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
/**
* @author :dzp
* @date :Created in 2022/6/6 15:57
* @description:
*/
public class GsonUtil {
/**
* 不用创建对象,直接使用Gson.就可以调用方法
*/
private static Gson gson = null;
private static JsonParser jsonParser = null;
/**
* 判断gson对象是否存在了,不存在则创建对象
*/
static {
//gson = new Gson();
// 当使用GsonBuilder方式时属性为空的时候输出来的json字符串是有键值key的,显示形式是"key":null,而直接new出来的就没有"key":null的
gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
if(jsonParser == null ){
jsonParser = new JsonParser();
}
}
private GsonUtil() {}
/**
* json 转对象
* @param strJson
* @return
*/
public static JsonObject string2Object(String strJson) {
return jsonParser.parse(strJson).getAsJsonObject();
}
/**
* 将对象转成json格式
* @param object
* @return String
*/
public static String object2String(Object object) {
String gsonString = null;
if (gson != null) {
gsonString = gson.toJson(object);
}
return gsonString;
}
/**
* 将json转成特定的cls的对象
* @param * @param cls
* @return
*/
public static String mapToString(Map map) {
if (gson != null) {
//传入json对象和对象类型,将json转成对象
return gson.toJson(map);
}
return null;
}
/**
* 将json转成特定的cls的对象
* @param gsonString
* @param cls
* @return
*/
public static <T> T stringToBean(String gsonString, Class<T> cls) {
T t = null;
if (gson != null) {
//传入json对象和对象类型,将json转成对象
t = gson.fromJson(gsonString, cls);
}
return t;
}
/**
* json字符串转成list
* @param gsonString
* @param clazz
* @return
*/
public static <T> List<T> stringToList(String gsonString, Class<T> clazz) {
List<T> list = null;
if (gson != null) {
//根据泛型返回解析指定的类型,TypeToken<List<T>>{}.getType()获取返回类型
Type type = new ParameterizedTypeImpl(clazz);
list = gson.fromJson(gsonString, type);
}
return list;
}
private static class ParameterizedTypeImpl implements ParameterizedType {
Class clazz;
public ParameterizedTypeImpl(Class clz) {
clazz = clz;
}
@Override
public Type[] getActualTypeArguments() {
return new Type[]{clazz};
}
@Override
public Type getRawType() {
return List.class;
}
@Override
public Type getOwnerType() {
return null;
}
}
/**
* json字符串转成list中有map的
* @param gsonString
* @return
*/
public static <T> List<Map<String, T>> stringToListMaps(String gsonString) {
List<Map<String, T>> list = null;
if (gson != null) {
list = gson.fromJson(gsonString,
new TypeToken<List<Map<String, T>>>() {
}.getType());
}
return list;
}
/**
* json字符串转成map的
* @param gsonString
* @return
*/
public static <T> Map<String, T> stringToMaps(String gsonString) {
Map<String, T> map = null;
if (gson != null) {
map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
}.getType());
}
return map;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
短信sdk:使用阿里云短信sdk源码
共34个文件
class:13个
java:10个
properties:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 31 浏览量
2022-06-18
17:01:26
上传
评论
收藏 81KB RAR 举报
温馨提示
短信sdk:使用阿里云短信sdk实现短信通异步发送。 1.调用阿里云短信sdk或其他厂商短信sdk 2.将随机验证码保存 (可以保存到redis或mysql之类的,设置一个失效时间。 ) 3.用户输入验证码说 和保存的验证码进行比较。 看是否一致,如果一致删除保存的验证码,不一致就返回验证失败。 对应博客: https://blog.csdn.net/qq_37716298/article/details/125348811
资源推荐
资源详情
资源评论
收起资源包目录
common-send.rar (34个子文件)
common-send
.gitignore 395B
.mvn
wrapper
maven-wrapper.jar 57KB
maven-wrapper.properties 233B
pom.xml 3KB
mvnw 10KB
target
generated-test-sources
test-annotations
test-classes
com
secusoft
send
SendApplicationTests.class 3KB
generated-sources
annotations
classes
com
secusoft
send
utils
CommonUtlis.class 1KB
GsonUtil$ParameterizedTypeImpl.class 950B
GsonUtil$1.class 594B
GsonUtil$2.class 571B
GsonUtil.class 4KB
SendApplication.class 735B
constant
Constant.class 204B
config
bean
AliyunSendNoteConfig.class 1KB
AliyunClientConfig.class 3KB
service
impl
AliyunSendMsgServiceImpl.class 4KB
AliyunSendMsgBaseService.class 207B
SendMsgBaseService.class 508B
application.properties 1B
common-send.iml 6KB
src
test
java
com
secusoft
send
SendApplicationTests.java 2KB
main
resources
application.properties 1B
java
com
secusoft
send
utils
CommonUtlis.java 781B
GsonUtil.java 4KB
SendApplication.java 318B
constant
Constant.java 245B
config
bean
AliyunSendNoteConfig.java 605B
AliyunClientConfig.java 3KB
service
AliyunSendMsgBaseService.java 202B
impl
AliyunSendMsgServiceImpl.java 3KB
SendMsgBaseService.java 1KB
mvnw.cmd 7KB
HELP.md 429B
send.iml 10KB
共 34 条
- 1
资源评论
一枚开发小咸鱼
- 粉丝: 1108
- 资源: 47
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功