jsonobject

DTO改造为JsonObject

*爱你&永不变心* 提交于 2020-04-05 17:54:51
曾经有个项目,遇到一个情况就是DTO需要“频繁”的转成JsonObject进行传递(因为用的框架是 Vert.x,用EventBus通信)存在明显的性能消耗。或者使用框架带的DTO自定义,但是一看就没麻烦就没有操作。 需要频繁的操作如下: JSONObject jo= (JSONObject) JSONObject.toJSON(fooBean); FooBean fooBean= (FooBean)JSONObject.toBean(jo, FooBean.class); 为了提高性能,做的就是改造DTO,思路如下: 本来DTO的属性是本来是以全局变量存在各自的类中,现在把这类全部去掉,改成维护在JsonObject 中。因为操作相同,把所有的DTO都改成继承同一个基础的DTO ,在基础的DTO中统一维护。 1.为了适配其他框架的实例化,还是要保留相应的get/set,但是get/set操作的其实是JsonObject 2.为了非String类型的数据,做相关方法的改写。 //-----------BaseJsonDTO .java----- public class BaseJsonDTO { private static Logger logger = LoggerFactory.getLogger(RespGenerator.class); private static

struts中实现ajax的配置信息

感情迁移 提交于 2020-03-30 12:16:38
基于Struts2框架下实现Ajax有两种方式,第一种是原声的方式,另外一种是struts2自带的一个插件。 js部分调用方式是一样的: JS代码: 1 function testAjax() { 2 3 var $userNameInput = $("#ajax_username"); 4 var userName = $userNameInput.val(); 5 6 $.ajax({ 7 url : "originAjax.action", 8 type : "GET", 9 data : "ajaxField=" + userName, 10 success : function(data, textStatus) { 11 alert(data); 12 } 13 }); 14 } 第一种原生的实现方式: Action中创建一个方法: private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public void checkUserName() throws IOException { HttpServletResponse response

com.alibaba.fastjson.JSONObject与net.sf.json.JSONObject之对象与JSON转换方法的区别

邮差的信 提交于 2020-03-27 09:34:43
一、com.alibaba.fastjson.JSONObject时经常会用到它的转换方法,包括Java对象转成JSON串、JSON对象,JSON串转成java对象、JSON对象,JSON对象转换Java对象、JSON串等,使用方法总结如下,持续更新... 1、Java对象-->JSON对象 (JSONObject)JSONObject.toJSON(Java对象实例) 1 public class JSON2JavaTest{ 2 public static void main(String[] args) { 3 Student stu = new Student("公众号编程大道", "m", 2); 4 5 //Java对象转化为JSON对象 6 JSONObject jsonObject = (JSONObject) JSONObject.toJSON(stu); 7 System.out.println("Java对象转化为JSON对象\n" + jsonObject);//{"name":"公众号编程大道","age":2,"sex":"m"} 8 9 } 10 } 2、Java对象-->JSON字符串 JSONObject.toJSONString(Java对象实例) 1 public class JSON2JavaTest{ 2 public static

JSON基本介绍

拈花ヽ惹草 提交于 2020-03-27 06:13:03
导读:   JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON 是JavaScript 原生格式,这意味着在JavaScript 中处理JSON 数据不需要任何特殊的API 或工具包。   JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html   举个简单的例子:    js 代码   function showJSON() {   var user =   {   "username":"andy",   "age":20,   "info": { "tel": "123456", "cellphone": "98765"},   "address":   [   {"city":"beijing","postcode":"222333"},   {"city":"newyork","postcode":"555666"}   ]   }      alert(user.username);   alert(user.age);   alert(user.info.cellphone);   alert

json使用

China☆狼群 提交于 2020-03-24 18:44:56
3 月,跳不动了?>>> 转载自: https://www.cnblogs.com/LearnAndGet/p/10009646.html 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); System.out.println(json1.toString()); Map map2 = json1.toMap(); System.out.println(map2.toString()); } 可以看到

rabbitmq系列(四)死信队列

こ雲淡風輕ζ 提交于 2020-03-23 09:53:16
一、什么是死信队列 当消息在一个队列中变成一个死信之后,它将被重新publish到另一个交换机上,这个交换机我们就叫做死信交换机,私信交换机将死信投递到一个队列上就是死信队列。具体原理如下图: 消息变成死信的三种情况: 消息被拒绝(basic.reject / basic.nack),并且requeue = false 消息TTL过期 队列达到最大长度 二、手动签收应答模式 应答模式分为两种,手动签收和自动签收,自动应答就是消费者消费了一条消息就自动告诉队列删除消息。这样的弊端就是不管消费逻辑有没有成功,都会将消息删除,这样就会造成消息丢失。而使用手动签收后,就是在消费逻辑处理成功后,手动告诉队列消费成功,然后队列再去删除这条消息。 再消费者配置文件中开启手动签收模式 spring.rabbitmq.listener.simple.acknowledge-mode = manual 在消费逻辑处理成功后手动签收,修改消费者代码 @RabbitListener(queues = QUEUE_NAME) public void receiveMessage(Message message,@Headers Map<String,Object> headers, Channel channel) throws Exception { Jedis jedis = new Jedis(

java 解析json

☆樱花仙子☆ 提交于 2020-03-23 09:37:27
  在做接口设计或者api接口测试时,经常会制作json格式的数据,或者json格式的数据,这里给出一篇文章 ,详细讲解如何j解析son。 一 什么 是json    Json(javascript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMASctipt(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。    json 广泛的应用于web的数据传输中,是前端开发人员或者后端开发人员必须要学习的一种数据格式,这里复制一篇网址,供大家学习json   http://www.w3school.com.cn/json/index.asp 二 准备工作    解析json需要专门用来解析json的jar包,网上解析json的jar包有很多,这里推荐谷歌版本的,以下是获取方法   1 通过构建maven项目获取,在pom.xml中 的依赖中粘贴以下代码 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> <

rabbitmq系列(四)死信队列

吃可爱长大的小学妹 提交于 2020-03-23 09:26:18
3 月,跳不动了?>>> 一、什么是死信队列 当消息在一个队列中变成一个死信之后,它将被重新publish到另一个交换机上,这个交换机我们就叫做死信交换机,私信交换机将死信投递到一个队列上就是死信队列。具体原理如下图: 消息变成死信的三种情况: 消息被拒绝(basic.reject / basic.nack),并且requeue = false 消息TTL过期 队列达到最大长度 二、手动签收应答模式 应答模式分为两种,手动签收和自动签收,自动应答就是消费者消费了一条消息就自动告诉队列删除消息。这样的弊端就是不管消费逻辑有没有成功,都会将消息删除,这样就会造成消息丢失。而使用手动签收后,就是在消费逻辑处理成功后,手动告诉队列消费成功,然后队列再去删除这条消息。 再消费者配置文件中开启手动签收模式 spring.rabbitmq.listener.simple.acknowledge-mode = manual 在消费逻辑处理成功后手动签收,修改消费者代码 @RabbitListener(queues = QUEUE_NAME) public void receiveMessage(Message message,@Headers Map<String,Object> headers, Channel channel) throws Exception { Jedis jedis =

利用服务器实现疫情查询小系统(Web版+APP)

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-22 20:39:49
  本次任务要求:结合之前的数据可视化,数据爬取,配合服务器实现外网访问,并做出一个手机app实现访问数据。!!!【由于写该博客时插入图片出现问题,因此效果无法展示,部分地方会进行文字描述】   思路分析:数据可视化和数据爬取沿用前两周任务代码即可,问题在于服务器搭建和app的制作。服务器我在阿里云以学生价租用了一个, app使用Android Studio制作即可,需要解决的问题是Android访问远程MySQL数据库。   关于使用服务器实现外网访问Web项目:要实现外网访问Web项目,需要在服务器上搭建jdk和Tomcat,将本机上相应Web项目打包成war文件后,复制到远程服务器上Tomcat中webapps文件夹下。随后要在服务器上配置信息:找到服务器实例的安全组,在配置规则里加入端口8080/8080的自定义TCP,入方向和出方向我都设置了一次。在一切配置完之后,即可通过【http://+你的公网ip地址+/项目名/项目名下xx.html或xx.jsp】格式外网访问你的项目。   要实现实时更新数据信息,数据爬取入库和读取MySQL数据库操作需要在远程服务器上实现,因此要在远程服务器上下载MySQL和Python相关应用,我使用的是Navicat for MySQL配合MySQL数据库进行使用。在配置时会出现连接数据库失败的情况,解决方法如下

聊聊skywalking的register-receiver-plugin

烈酒焚心 提交于 2020-03-22 10:54:35
3 月,跳不动了?>>> 序 本文主要研究一下skywalking的register-receiver-plugin RegisterModuleProvider skywalking-6.6.0/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java public class RegisterModuleProvider extends ModuleProvider { @Override public String name() { return "default"; } @Override public Class<? extends ModuleDefine> module() { return RegisterModule.class; } @Override public ModuleConfig createConfigBeanIfAbsent() { return null; } @Override public void prepare() { } @Override public