android用jsonReader来解析json

黄舟
发布: 2017-02-20 15:02:46
原创
1853人浏览过

对于这个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();
	}

}
登录后复制

 以上就是android用jsonReader来解析json的内容,更多相关内容请关注PHP中文网(www.php.cn)!

eMart 网店系统
eMart 网店系统

功能列表:底层程序与前台页面分离的效果,对页面的修改无需改动任何程序代码。完善的标签系统,支持自定义标签,公用标签,快捷标签,动态标签,静态标签等等,支持标签内的vbs语法,原则上运用这些标签可以制作出任何想要的页面效果。兼容原来的栏目系统,可以很方便的插入一个栏目或者一个栏目组到页面的任何位置。底层模版解析程序具有非常高的效率,稳定性和容错性,即使模版中有错误的标签也不会影响页面的显示。所有的标

eMart 网店系统 0
查看详情 eMart 网店系统
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号