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 ;
		}
	}
}

时间: 2024-10-24 11:19:29

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

JAVA解析JSON数据

转自:http://www.cnblogs.com/boy1025/p/4551593.html 3.解析JSON数据(小编使用的GSON进行json数据的解析) 3-1 [JSONObject的解析] 下面是一个json文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

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

1.问题描述 首先,需要解析的Json数据类似于下面的格式: { ret: 0, msg: "normal return.", news: [ { id: "NEW2016062800875700", from: "腾讯新闻客户端", qqnews_download_url: "http://inews.qq.com/m?refer=openapi_for_xiaotiancai", articletype: "1&

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

原文链接:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多Java下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSO

Java构造和解析Json数据的两种方法详解二(转)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法示例. 一.介绍 org.json包是另一个用来beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.json.org/上有详细讲解,有兴趣的可以去研究. 二.下载jar依赖包  

Java构造和解析Json数据的两种方法详解一(转)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.json.org/上有详细讲解,有兴趣的可以去研究. 二.下载jar依赖包:可以去这

Android 网络请求json数据,解析json数据,生成对应的java bean类一步到位,快速开发

Android 网络请求一般都涉及到图片和JSON数据,怎样快速的请求网络JSON数据,解析JSON数据,并且一步生成自己想要的Java bean实体类?这个涉及到Android 开发效率的问题.由于接触Android 网络这方面比较多,自然就找到一些好的方法来快速开发Android 网络模块的相关内容,接下来就为大家揭晓 一步快速请求,解析JSON 数据生成对应的Java bean实体类的方法. 注:我们先把思路讲解下吧: 1.网络请求JSON数据代码可以自己写,当然我还是推荐使用网络上开源的

【转】Java构造和解析Json数据的两种方法详解一

Java构造和解析Json数据的两种方法详解一 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和J

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

三.基本方法介绍 由于org.json不能直接与bean进行转换,需要通过map进行中转,为了方便,我这里写了一个工具类JsonHelper,用于Json与Map.Bean的相互转换 package com.json; import java.lang.reflect.Method; import java.text.ParseException; import java.util.HashMap; import java.util.Iterator; import java.util.Map;

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

转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSON-