kafka消息传输时的对象转字符串时所需 -json String 转list 、set、 Long、 String 、map 与json Iterator遍历
JSONObject jsonObject = new JSONObject(jsonString);
Iterator iterator = jsonObject.keys();
while(iterator.hasNext()){
key = (String) iterator.next();
value = jsonObject.getString(key);
}
private static Map<String, List<NewNet>> toMap(Object object) {
Map<String, List<NewNet>> data = new HashMap<String, List<NewNet>>();
JSONObject jsonObject = JSONObject.fromObject(object);
Iterator ite = jsonObject.keys();
while (ite.hasNext()) {
String key = String.valueOf(ite.next());
JSONArray obj = JSONArray.fromObject(jsonObject.get(String.valueOf(key)));
Iterator<Object> it = obj.iterator();
while (it.hasNext()) {
JSONObject Obj= JSONObject.fromObject(it.next());
NewNet value = (NewNet) Obj.toBean(Obj,NewNet.class);
if(data.keySet().contains(key)){
data.get(key).add(value);
}else{
List<NewNet> List=new ArrayList<NewNet>();
List.add(value);
data.put(key, List);
}
}
}
return data;
}
public static List<RPingCheckParamsDto> jsonToVar(String jsons){
JSONArray objs = JSONArray.fromObject(jsons);
Iterator<JSONObject> it = objs.iterator();
List<RPingCheckParamsDto> dtos = new ArrayList<RPingCheckParamsDto>();
while (it.hasNext()) {
JSONObject ob = (JSONObject) it.next();
RPingCheckParamsDto dto = new RPingCheckParamsDto();
if(ob.getString("device")!=null){
dto.setDevice((Device)JSONObject.toBean(JSONObject.fromObject(ob.
get("device")),Device.class));
}
if(ob.getString("starttime")!=null){
dto.setStarttime((Long)ob.get("starttime"));
}
if(ob.getString("type")!=null){
dto.setType((Integer)ob.get("type"));
}
if(ob.getString("segs")!=null){
dto.setSegs((ArrayList<IPTreeNodeBean>)JSONArray.toList(JSONArray.
fromObject(ob.get("segs")),IPTreeNodeBean.class));
}
if(ob.getString("assignedIps")!=null){
ArrayList<String> Ps = (ArrayList<String>)JSONArray.toCollection(JSONArray.
fromObject(ob.get("assignedIps")));
Set<String> bs = new HashSet<String>();
for(String p:Ps){
bs.add(p);
}
if(ob.getString("nsegs")!=null){
dto.setNsegs((ArrayList<NewNet>)JSONArray.toList(JSONArray.
fromObject(ob.get("nsegs")),NewNet.class));
}
dto.setAssignedIps(bs);
}
if(dto!=null){
dtos.add(dto);
}
}
return dtos;
}
在信息解析的过程中发生很多bug ,直接gson去转,这里很是推荐这个,很好用,自定义类型的转化效率很高
kafka消息传输时的对象转字符串时所需 -json String 转list 、set、 Long、 String 、map 与json Iterator遍历的更多相关文章
- logstash与kafka消息传输<一>
1.版本: logstash6.1.2.kafka-0.11.kafka-0.8.2.java1.8 Note: Logstash requires Java 8. Java 9 is not sup ...
- 使用fastjson将对象和字符串进行转换
依赖包: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</ar ...
- JSON对象和字符串之间的相互转换 – JSON.parse() 和 JSON.stringify()
所有现代浏览器都支持 JSON 对象,有两个非常有用的方法来处理 JSON 格式的内容: JSON.parse(string) :接受一个 JSON 字符串并将其转换成一个 JavaScript 对象 ...
- InnerException 消息是“反序列化对象 属于类型 *** 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。(注意细节)
WEB站点在调用我们WCF服务的时候,只要传入的参数过长,就报如下错误: 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: formD ...
- fastjson中对象转化为字符串时过滤某字段
fastjson中对象转化为字符串时过滤某字段,有两种方法: 一.在该字符定义上方添加"@JSONField(serialize=false)"注解: 二.调用含有Property ...
- json对象转为字符串,当做参数传递时加密解密
[son对象 字符串 互相转行] 比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":"tom","sex ...
- 实时消息传输协议 RTMP(Real Time Messaging Protocol)
实时消息传输协议(RTMP)最初是由 Macromedia 为互联网上 Flash player 和服务器之间传输音频.视频以及数据流而开发的一个私有协议.Adobe 收购 Macromedia 购以 ...
- Web Service 或 WCF调用时读取 XML 数据时,超出最大字符串内容长度配额(8192)解决方法
1.调用服务时服务 当我们使用 Web Service 或 WCF 服务时,常把读取的数据转化为string类型(xml格式),当数据量达到一 定数量时,会出现以下异常: 错误:格式化程序尝试对消息反 ...
- ZeroMQ接口函数之 :zmq - 0MQ 轻量级消息传输内核
官方网址:http://api.zeromq.org/4-0:zmq zmq(7) 0MQ Manual - 0MQ/3.2.5 Name zmq – ØMQ 轻量级消息传输内核 Synopsis # ...
随机推荐
- defer与async
defer:该属性指定的脚本不会修改DOM,因此代码可以安全的延迟执行. 含defer属性的script标签可以放在任何位置,在页面解析到该script标签时,开始下载脚本,但不会执行脚本,直至DOM ...
- counter 计数器
包含了两个属性和一个方法: 1. counter-reset 2. counter-increment 3. counter()/counters() counter-reset(主要作用就是给计 ...
- CentOS6软raid配置与管理
事先添加硬盘设备sdb.sdc.sdd.sde.无论是物理硬盘还是虚拟硬盘,最好使用同型号同大小的硬盘. 创建raid设备 支持raid0.1.4.5.6级别 # mdadm -C /dev/md0 ...
- NFS服务器的安装与配置
由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程. 1.NFS服务的简介: NFS 是 Network File System 的缩写,是Sun公司于 ...
- python密码错误三次锁定
程序需求: 输入用户名,密码 认证成功显示欢迎信息 输入错误三次后锁定用户 流程图: 好像画的不咋地 #!/usr/bin/env python # _*_ coding:utf-8 _*_ # Fi ...
- ajax事件请求
首先,ajax是什么? ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. ajax是一种用于创建的快速动态网页的技术. 当async:true时,表示异步执行ajax代码:当as ...
- 重新绘制TabControl的Tabpage标签,添加图片及关闭按钮
1 }
- 【Win 10 应用开发】UI Composition 札记(六):动画
动画在 XAML 中也有,而且基本上与 WPF 中的用法一样.不过,在 UWP 中,动画还有一种表现方式—— 通过 UI Composition 来创建. 基于 UI Composition 的动画, ...
- HTTPS 传输优化详解之动态 TLS Record Size
笔者在过去分析了诸多可以减少 HTTPS 传输延迟的方法,如分布式 Session 的复用: 启用 HSTS,客户端默认开启 HTTPS 跳转:采用 HTTP/2 传输协议:使用 ChaCha20-P ...
- PHP操作MySQL数据库之天龙八部 -- 七贱下天山 -- 六脉神剑
天龙八部 八步操作数据库 七贱下天山 七步操作数据库 (将判断错误省略) 六脉神剑 六步操作数据库(将判断错误省略,将选择数据库添加到第一步 ...