zoukankan      html  css  js  c++  java
  • android用jsonReader来解析json

    对于这个json:

    {
      "id" : "3232",
      "data" : [{
        "data1" : "555",
        "data2" : "3243"
        },
        {
         "data1" : "888",
         "data2" : "777"
        }]
      }
    

    我们能够这样来解析:

    import java.io.IOException;
    import java.io.InputStream;
    import java.io.Reader;
    import java.io.StringReader;
    import com.google.gson.stream.JsonReader;
    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    
    public class TestActivity1 extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		parseAssertData();
    	}
    
    	public void parseAssertData() {
    		InputStream is = null;
    		try {
    			is = this.getAssets().open("ss.json", Context.MODE_PRIVATE);
    			int length = is.available();
    			byte[] buffer = new byte[length];
    			is.read(buffer);
    			String temp = new String(buffer);
    
    			Reader response = new StringReader(temp.toString());
    			parseResponse(response);
    		} catch (IOException ex) {
    			ex.printStackTrace();
    		}
    	}
    
    	private void parseResponse(Reader response) throws IOException {
    		JsonReader reader = new JsonReader(response);
    		reader.beginObject();
    		while (reader.hasNext()) {
    			String name = reader.nextName();
    			if ("id".equals(name)) {
    				String id = reader.nextString();
    				System.out.println("===id="+id);
    			} 
    			else if (name.equals("data")) {
    				reader.beginArray();
    				while (reader.hasNext()) {
    					  reader.beginObject();
    
    				        String name1;
    				        while (reader.hasNext()) {
    				        	name1 = reader.nextName();
    				            if (name1.equals("data1")) {
    				            	String s1 = reader.nextString();
    				            	System.out.println("===s1="+s1);
    				            } else if (name1.equals("data2")) {
    				            	String s2 = reader.nextString();
    				            	System.out.println("===s2="+s2);
    				            }  else {
    				                reader.skipValue();
    				            }
    				        }
    
    				        reader.endObject();
    				}
    				reader.endArray();
    			}
    			else {
    				reader.skipValue();
    			}
    		}
    		reader.endObject();
    		reader.close();
    	}
    
    }
    


  • 相关阅读:
    如何通过npm编译Typescript代码
    TypeScript 中的':' 和'?:'的区别
    无法读取本地服务器JSON文件, 返回404错误
    Nodejs , npn 注册 包上传,更新,下载
    Java 字符流
    Java 字节流
    Java中的File类,递归是什么?
    JDBC工具类—如何封装JDBC
    JDBC的开发步骤
    vFor和vIf不要一起使用
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6743858.html
Copyright © 2011-2022 走看看