Android实战--解析稍复杂JSON数据DEMO

废话不多说,直接上代码,布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/mytext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

.java:

package org.lxh.demo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Hello extends Activity {
	private TextView textView;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState); // 生命周期方法
		super.setContentView(R.layout.main); // 设置要使用的布局管理器
		this.textView = (TextView) findViewById(R.id.mytext);
		String str = "{\"memberdata\":[{\"id\":1,\"name\":\"yayun\",\"age\":25},"
				+ "{\"id\":2,\"name\":\"qiangge\",\"age\":26}],\"company\":\"NJUPT\"}";
		StringBuffer buffer = new StringBuffer();
		Map<String, Object> resultMap = this.parseJson(str);
		buffer.append("单位名称:" + resultMap.get("company") + "\n");
		@SuppressWarnings("unchecked")
		List<Map<String, Object>> all = (List<Map<String, Object>>) resultMap
				.get("memberdata");// 强制转换
		Iterator<Map<String, Object>> iter = all.iterator();
		while (iter.hasNext()) {
			Map<String, Object> map = iter.next();
			buffer.append("ID:" + map.get("id") + "姓名:" + map.get("name")
					+ "\n");

		}
		this.textView.setText(buffer);

	}

	private Map<String, Object> parseJson(String data) {
		Map<String, Object> allMap = new HashMap<String, Object>();
		try {
			JSONObject allDataJsonObject = new JSONObject(data);
			allMap.put("company", allDataJsonObject.getString("company"));
			JSONArray array = allDataJsonObject.getJSONArray("memberdata");
			List<Map<String, Object>> all = new ArrayList<Map<String, Object>>();
			for (int i = 0; i < array.length(); i++) {
				Map<String, Object> map = new HashMap<String, Object>();
				JSONObject jsonObject = array.getJSONObject(i);
				map.put("id", jsonObject.getInt("id"));
				map.put("name", jsonObject.getString("name"));
				map.put("age", jsonObject.getInt("age"));
				all.add(map);
			}
			allMap.put("memberdata", all);// 将List<Map<String,
											// Object>>装入Map<String, Object>
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return allMap;
	}
}

运行实例效果如下:

我的应用:                      http://openbox.mobilem.360.cn/index/d/sid/2966005

http://android.myapp.com/myapp/detail.htm?apkName=com.yayun.gitlearning

喜欢的朋友可以关注我,多交流,谢谢。

时间: 2024-10-28 16:26:03

Android实战--解析稍复杂JSON数据DEMO的相关文章

android通过httpClient请求获取JSON数据并且解析

android通过httpClient请求获取JSON数据并且解析:http://www.cnblogs.com/gzggyy/archive/2013/05/08/3066288.html Android--使用Http向服务器发送请求并取得返回结果,下载图片:http://www.2cto.com/kf/201307/229489.html Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据):http://blog.csdn.net/he

使用Gson解析复杂的json数据

Gson解析复杂的json数据 最近在给公司做一个直播APK的项目,主要就是通过解析网络服务器上的json数据,然后将频道地址下载下来再调用Android的播放器进行播放,原先本来打算使用普通的json解析方法即JsonObject和JsonArray的配合使用,这对于解析小数据的json数据还是比较实用,但是当解析json数据比较复杂的时候这种方法就显得比较吃力也比较麻烦了,如果大家感兴趣的话网上有大量的实例可以到网上去看看. 在这里我将介绍解析json数据的另外一种方法就是通过Gson解析,

Android Gson解析多层嵌套复杂数据

目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://code.google.com/p/google-gson/ 什么是JSON: JSON即JavaScript Object Natation, 它是一种轻量级的数据交换格式, 与XML一样, 是广泛被采用的客户端和服务端交互的解决方案. JSON对象:  JSON中对象(Object)以"{"

Gson解析复杂的json数据

最近在给公司做一个直播APK的项目,主要就是通过解析网络服务器上的json数据,然后将频道地址下载下来再调用Android的播放器进行播放,原先本来打算使用普通的json解析方法即JsonObject和JsonArray的配合使用,这对于解析小数据的json数据还是比较实用,但是当解析json数据比较复杂的时候这种方法就显得比较吃力也比较麻烦了,如果大家感兴趣的话网上有大量的实例可以到网上去看看. 在这里我将介绍解析json数据的另外一种方法就是通过Gson解析,对于解析比较简单的json数据我

解析并呈现json数据

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式. JSONM文件中包含了关于“名称”和“值”的信息. 有时候我们需要读取JSON格式的数据文件,在jQuery中可以使用Ajax或者 $.getJSON()方法实现. jQuery ajax - getJSON() 方法 语法: jQuery.getJSON(url,data,success(data,status,xhr)) 等价于: $.ajax({ url: url, data: data, suc

Android实战--天气预报(API+JSON解析)

学习安卓有一段时间了,应该提高自己的实战能力,做一些简单的Demo.下面我们介绍一下如何利用网络API实现天气预报功能,主要涉及到如何利用API获得网络数据,网络数据返回一般是JSON格式,这里又涉及到JSON的解析问题,这些都是比较基础的问题,应该予以掌握. 首先在http://apistore.baidu.com/?qq-pf-to=pcqq.c2c找到你想要的API,这里我们选择http://apistore.baidu.com/astore/serviceinfo/1798.html,网

Android:使用Gson解析复杂的JSON数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,目前广泛使用.本文主要讲解android如何解析复杂格式的JSON数据,适合android初学者和初步接触JSON的人. 1.JSON相关介绍: 首先了解一下JSON的相关内容,JSON中的数据是以键值对的形式出现的.例如"name":"jack":这就是一个键值对,可以理解为name=jack.JSON中很重要的两个概念就是数组(array)和对象(object),初学者

Java-json系列(二):用JSONObject解析和处理json数据

本文中主要介绍JSONObject处理json数据时候的一些常用场景和方法. (一)jar包下载 所需jar包打包下载百度网盘地址:https://pan.baidu.com/s/1c27Uyre (二)常见场景及处理方法 1.解析简单的json字符串: 1 // 简单的json测试字符串 2 public static final String JSON_SIMPLE = "{'name':'tom','age':16}"; 3 4 JSONObject obj = JSONObje

Gson解析第三方提供Json数据(天气预报,新闻等)

之前都是自己写后台,自己的server提供数据给client. 近期在看第三方的数据接口,訪问其它站点提供的信息.比方.我们可能自己收集的数据相当有限.可是网上提供了非常多关于天气预报.新闻.星座运势.身份证号.车辆违章.健康医疗.快递查询.ip查询.翻译等的api接口.基本返回数据为类型json和xml 我就喜欢简单便捷的东西.在这解析一下第三方新闻的接口返回的json数据: 我喜欢用谷歌提供的Gson,感觉比JSON去解析要简单.方便,快捷:当然了阿里巴巴提供的fastjson也是极好的.在