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: ...
随机推荐
- chkconfig---检查设置系统服务
chkconfig命令 chkconfig命令检查.设置系统的各种服务.这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务 ...
- Summary Day32
1 . 文件管理 1.1 标C文件处理和UC文件处理函数的比較: 标C文件处理函数比UC的文件处理函数速度快.由于标C内部独立输入输出缓冲区, 会积累一定数量之后再写入文件,因此读写效率比較高 使用t ...
- php课程 12-39 继承中parent的作用是什么
php课程 12-39 继承中parent的作用是什么 一.总结 一句话总结:PHP5中使用parent::来引用父类的方法.parent:: 可用于调用父类中定义的成员方法. parent::的追溯 ...
- R 语言下常用第三方库的说明
1. doBy 官方文档见 CRAN - Package doBy doBy 主要适用于以下操作: 1) Facilities for groupwise computations of summar ...
- 26.多线程join detach
#include <iostream> #include <thread> #include <array> #include <Windows.h> ...
- Encoding encoding = Encoding.GetEncoding("gb2312"); 与byte[] ping = Encoding.UTF8.GetBytes(inputString);区别
Encoding encoding = Encoding.GetEncoding("gb2312"); 与byte[] ping = Encoding.UTF8.GetBytes( ...
- ps的入门
ps的入门 http://www.cnblogs.com/qingci/archive/2012/09/20/2694728.html
- Vue的style与class
1. style 可以通过 :style="{height:`${heightData.main}px`}" 实现样式的动态绑定, style绑定的是一个对象,多个样式时用“,”隔 ...
- JAVA MessageDigest(MD5加密等)
转自http://blog.csdn.net/hudashi/article/details/8394158 一.概述 java.security.MessageDigest类用于为应用程序提供信息摘 ...
- Servlet 规范笔记—servlet概念及结构
Servlet, 这个词对java程序员并不陌生,我想几乎每个java程序员在学习J2EE知识时,首先学习的就是servlet,这是一种正确的学习方式,在我看来Servlet是J2EE的基础,要熟练 ...