博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 封装解析 Json数据。
阅读量:5327 次
发布时间:2019-06-14

本文共 2545 字,大约阅读时间需要 8 分钟。

import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Vector;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.led.image.TransformUtils;import com.ledsystem.util.EncodingDetect;/** * @deprecated锛氳В鏋怞son鏁扮粍 * @author Gary huang  * @since : 1.0.0  * */@SuppressWarnings("unchecked")public class JsonArrayUtils {		private List
nodes = null ; public JsonArrayUtils(String json){ try { JSONArray jsonArray = JSONArray.parseArray(json); nodes = parseNodes( jsonArray ) ; } catch (Exception e) { e.printStackTrace() ; } } List
parseNodes(JSONArray array){ List
nodes = new Vector
(); int size = array.size() ; for (int i = 0; i < size; i++) { try { JSONObject json = array.getJSONObject(i); nodes.add(parseNodeObject(json)) ; } catch (Exception e) { e.printStackTrace() ; } } return nodes ; } NodeObject parseNodeObject(JSONObject json){ NodeObject node = new NodeObject(); Iterator
key = json.keySet().iterator() ; while(key.hasNext()){ String keyName = TransformUtils.toString(key.next()); try { Object value = json.get( keyName ) ; if(null == value){ continue ; } if(value instanceof JSONObject){ node.put( keyName , parseNodeObject((JSONObject) value ) ) ; }else if(value instanceof JSONArray){ node.put( keyName , parseNodes((JSONArray) value ) ) ; }else{ node.put( keyName , value ) ; } } catch (Exception e){ e.printStackTrace() ; } } return node ; } public List
getNodes() { return nodes; } public NodeObject getNode() { return nodes.get(0) ; } public static class NodeObject{ private Map
datas = new HashMap
(); public void put(String key , Object value){ datas.put(key, value) ; } public Object get(String key){ return datas.get(key) ; } @Override public String toString() { return datas.toString(); } } public static class NodeItem{ private String key ; private Object value ; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public Object getValue() { return value; } public void setValue(Object value) { this.value = value; } public NodeObject getNode(){ return (NodeObject)this.value; } public List
getNodes(){ return ((List
)this.value); } @Override public String toString() { return "key:" + key + "value:" + value ; } }}

转载于:https://www.cnblogs.com/gcczhongduan/p/4233984.html

你可能感兴趣的文章
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
HTML5学习笔记简明版(2):新元素之section,article,aside
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
PHP之Trait详解
查看>>
Netty学习(三)高性能之ByteBuf源码解析(篇幅较长)
查看>>
selenium-窗口切换
查看>>
selenium-滚动
查看>>
win安装appium
查看>>
Ubuntu18.04中安装virtualenv和virtualenvwrapper
查看>>
read from and write to file
查看>>
下载文件,blob方式
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
Amcharts 柱状图和线形图
查看>>
APC注入
查看>>
关于ES6 Class语法相关总结
查看>>
文件处理
查看>>
[工具] Seer 代码预览器
查看>>
[工具] Sublime Text 使用指南
查看>>
Hangfire在ASP.NET CORE中的简单实现方法
查看>>