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<NodeObject> nodes = null ; public JsonArrayUtils(String json){
try {
JSONArray jsonArray = JSONArray.parseArray(json);
nodes = parseNodes( jsonArray ) ;
} catch (Exception e) {
e.printStackTrace() ;
}
} List<NodeObject> parseNodes(JSONArray array){
List<NodeObject> nodes = new Vector<NodeObject>();
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<String> 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<NodeObject> getNodes() {
return nodes;
} public NodeObject getNode() {
return nodes.get(0) ;
} public static class NodeObject{
private Map<String, Object> datas = new HashMap<String, Object>(); 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<NodeObject> getNodes(){
return ((List<NodeObject>)this.value);
} @Override
public String toString() {
return "key:" + key
+ "value:" + value ;
}
}
}

java 封装解析 Json数据。的更多相关文章

  1. java 封装返回json数据

    做的东西,一直是用easyui的,和后台的交互数据都是json格式的. 今天想要单独弄一个json数据返回给前台,其实是比较简单的问题,json接触不多,记录一下. 代码: public static ...

  2. Java对【JSON数据的解析】--Gson解析法

    Gson和fastjson分别为谷歌和阿里巴巴对JSON数据进行处理封装的jar包 两者异同点: 相同点:都是根据JSON数据创建相应的类 不同点: 1.调用方式区别 谷歌:方法都是非静态的,需要先创 ...

  3. Java构造和解析Json数据的两种方法详解二

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...

  4. Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法

    前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...

  5. Java构造和解析Json数据的两种方法详解一

    一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.js ...

  6. Introduction to Structured Data json的2种形式 JAVA解析JSON数据 - JsonArray JsonObject

    https://developers.google.com/search/docs/guides/intro-structured-data Structured data refers to kin ...

  7. Java构造和解析Json数据的两种方法详解二——org.json

    转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的jso ...

  8. Java构造和解析Json数据的两种方法详解一——json-lib

    转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的jso ...

  9. 我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

    1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: ...

随机推荐

  1. Java表单设计器orbeon点滴

    包含表单设计器和运行展现 一个完整的应用 页面部分都是使用XML和XHTML进行服务端的组合出来的,具体逻辑有些复杂 设计器缺少一个最常用的:repeat,如果需要只能手动编写代码(参考官方文档步骤有 ...

  2. 洛谷——P1843 奶牛晒衣服

    https://www.luogu.org/problem/show?pid=1843#sub 题目背景 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣 服就成了很不爽的事情. ...

  3. android关键组件service服务(一)

    一. Service简单介绍 Service是android 系统中的四大组件之中的一个(Activity.Service.BroadcastReceiver.ContentProvider),它跟A ...

  4. eclipse- DDMS截图功能使用

    如何使用eclipse的截图功能呢 1.打开eclipse 2.连接手机 3.打开eclipse的DDMS插件. 4.选中手机 5.点击上面的摄像机图标,就可以截图了 如果你打开了DDMS以后,没有发 ...

  5. the way to go

    推荐两本书 关于go语言的 The way to go Go语言编程高清完整版电子书.pdf

  6. BZOJ3192: [JLOI2013]删除物品(splay)

    Description   箱子再分配问题需要解决如下问题:  (1)一共有N个物品,堆成M堆.  (2)所有物品都是一样的,但是它们有不同的优先级.  (3)你只能够移动某堆中位于顶端的物品.  ( ...

  7. 【hdu 4333】Revolving Digits

    [链接]http://acm.hdu.edu.cn/showproblem.php?pid=4333 [题意] 就是给你一个数字,然后把最后一个数字放到最前面去,经过几次变换后又回到原数字,问在这些数 ...

  8. [Javascript] Different ways to create an new array/object based on existing array/object

    Array: 1. slice() const newAry = ary.slice() 2. concat const newAry = [].concat(ary) 3. spread oprea ...

  9. php数组函数(分类基本数组函数,栈函数,队列)

    php数组函数(分类基本数组函数,栈函数,队列函数) 一.总结 1.常用数组函数 函数 描述 array() 创建数组. array_combine() 通过合并两个数组来创建一个新数组. array ...

  10. AAC编解码

    AAC编码可以使用faac /** 初始化 @param sampleRate 音频采样率 @param channels 通道数 @param bitSize 音频采样精度 16 */ - (voi ...