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遍历的更多相关文章

  1. 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 ...

  2. 使用fastjson将对象和字符串进行转换

    依赖包: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</ar ...

  3. JSON对象和字符串之间的相互转换 – JSON.parse() 和 JSON.stringify()

    所有现代浏览器都支持 JSON 对象,有两个非常有用的方法来处理 JSON 格式的内容: JSON.parse(string) :接受一个 JSON 字符串并将其转换成一个 JavaScript 对象 ...

  4. InnerException 消息是“反序列化对象 属于类型 *** 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。(注意细节)

    WEB站点在调用我们WCF服务的时候,只要传入的参数过长,就报如下错误: 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: formD ...

  5. fastjson中对象转化为字符串时过滤某字段

    fastjson中对象转化为字符串时过滤某字段,有两种方法: 一.在该字符定义上方添加"@JSONField(serialize=false)"注解: 二.调用含有Property ...

  6. json对象转为字符串,当做参数传递时加密解密

    [son对象  字符串 互相转行] 比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":"tom","sex ...

  7. 实时消息传输协议 RTMP(Real Time Messaging Protocol)

    实时消息传输协议(RTMP)最初是由 Macromedia 为互联网上 Flash player 和服务器之间传输音频.视频以及数据流而开发的一个私有协议.Adobe 收购 Macromedia 购以 ...

  8. Web Service 或 WCF调用时读取 XML 数据时,超出最大字符串内容长度配额(8192)解决方法

    1.调用服务时服务 当我们使用 Web Service 或 WCF 服务时,常把读取的数据转化为string类型(xml格式),当数据量达到一 定数量时,会出现以下异常: 错误:格式化程序尝试对消息反 ...

  9. ZeroMQ接口函数之 :zmq - 0MQ 轻量级消息传输内核

    官方网址:http://api.zeromq.org/4-0:zmq zmq(7) 0MQ Manual - 0MQ/3.2.5 Name zmq – ØMQ 轻量级消息传输内核 Synopsis # ...

随机推荐

  1. idea tomee required to support ear ejb deployment问题

    先删掉原来的uname,然后添加项目即可

  2. 对es6中Promise和async的理解

    Promise var promise = new Promise((resolve,reject)=>{ resolve(value); //reject(value) }); //promi ...

  3. P3003 [USACO10DEC]苹果交货Apple Delivery

    题目描述 Bessie has two crisp red apples to deliver to two of her friends in the herd. Of course, she tr ...

  4. RabbitMQ之Helloworld

    RabbitMQ介绍 RabbitMQ是一个消息代理.它的核心原理非常简单:接收和发送消息. 专有名词 生产(Producing)意思就是发送.发送消息的程序就是一个生产者(producer).我们一 ...

  5. tornado之Hello world

    #!/usr/bin/env python26 #-*- coding:utf8 -*- import tornado.httpserver import tornado.ioloop import ...

  6. oracle数据库创建表,序列及添加代码案例

    create table cdpt( id number(6), name varchar2(30), constraint pk_id primary key(id) ); 更改数据库的“延迟段创建 ...

  7. Liunx find的运用

    find命令 一.根据 -name 查找 find[搜索范围][搜索条件] find /root -name a1 若是模糊查询,则使用通配符 *匹配任意字符{find /root -name &qu ...

  8. Python 日志处理(二) 使用正则表达式处理Nginx 日志

    使用正则表达式来处理Nginx 日志 一. 先对单行的日志进行分组正则匹配,返回匹配后的结果(字典格式): from datetime import datetime import re #单行日志 ...

  9. Bitmap.Config 说明 ALPHA_8 ARGB_4444 ARGB_8888 RGB_565

    这篇文章的目的是了解Bitmap.Config 你可以在使用这个方法的时候会遇到 Bitmap android.graphics.Bitmap.createBitmap(int width, int ...

  10. mysql的复杂查询,连接数据库

    1.MySQL的工具:Navicat 优点:方便2.数据库的导入 mysqldump -u用户名 -p密码 数据库名称 > 导出文集路径 #结构+数据 mysqldump -u用户名 -p密码 ...