java 封装解析 Json数据。
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数据。的更多相关文章
- java 封装返回json数据
做的东西,一直是用easyui的,和后台的交互数据都是json格式的. 今天想要单独弄一个json数据返回给前台,其实是比较简单的问题,json接触不多,记录一下. 代码: public static ...
- Java对【JSON数据的解析】--Gson解析法
Gson和fastjson分别为谷歌和阿里巴巴对JSON数据进行处理封装的jar包 两者异同点: 相同点:都是根据JSON数据创建相应的类 不同点: 1.调用方式区别 谷歌:方法都是非静态的,需要先创 ...
- Java构造和解析Json数据的两种方法详解二
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...
- Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法
前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...
- Java构造和解析Json数据的两种方法详解一
一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.js ...
- 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 ...
- Java构造和解析Json数据的两种方法详解二——org.json
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的jso ...
- Java构造和解析Json数据的两种方法详解一——json-lib
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的jso ...
- 我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题
1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: ...
随机推荐
- Dubbo简易学习
0. Dubbo简易介绍 DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000, ...
- C# WinForm设置透明
1:通过设置窗体的 TransparencyKey实现 例:窗体中的白色会变成透明 this.BackColor =Color.White; this.TransparencyKey = ...
- 03005_SQL查询语句
查询语句,在开发中使用的次数最多,此处使用“zhangwu” 账务表. 1.准备工作 (1)创建财务表: CREATE TABLE zhangwu ( id INT PRIMARY KEY AUTO_ ...
- 前台技术--div的隐藏与显示
怎样使用页面元素隐藏或显示. HTML为我们提供了两个变量visibility和display visibility:隐藏要元素可是元素所暂用的空间不予释放.也就是说元素隐藏了,可是页面上会流出一片空 ...
- Android 阅读器架构图,网上收集,留做存货
这个结构图是网上收集的图片.基结构明晰简洁.易于后期维护.本文会继续收集很多其他其他优秀的结构图,望有图的朋友推荐~
- 洛谷P2234 [HNOI2002]营业额统计(01Tire树)
题目描述 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是 ...
- affix附加导航插件
<style> a:focus { outline: none; } .nav-pills { width: 150px; } .nav-pills.affix { top : 10px; ...
- 有点坑爹的GDALComputeRasterMinMax函数
作者:朱金灿 来源:http://blog.csdn.net/clever101 GDALComputeRasterMinMax函数是gdal库为了求取指定波段的极值而提供的接口.最近看了这个接口的源 ...
- 3、Task.Factory属性
3.Task.Factory属性 Task类提供了一个Factory静态属性,这个属性返回一个TaskFactory对象. Task task = Task.Factory.StartNew(Task ...
- js检查元素是否包括在数组中
说明 在系统中须要检查税率填写的正确性,一定是国家规定的某几种税率,当然能够通过if else进行校验,可是还能够使用定义一个数组然后校验是否包括在元素中进行校验. 长处:加入税率无需改动逻辑,仅仅须 ...