zoukankan      html  css  js  c++  java
  • 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 ; 
    		}
    	}
    }
    

  • 相关阅读:
    【Python教程】3道循环结构练习题
    python3中实现print不换行的方法
    零基础学Python:字典(Dictionary)详细教程
    TS错误提示
    v-slot的简单理解应用
    Typora使用方法简单整理
    Java基础系列(6)- 面向对象(中)
    monkey基础 (7)
    monkey基础 (6)
    monkey基础 (5)
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4233984.html
Copyright © 2011-2022 走看看