`
TonySun3544
  • 浏览: 161301 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中解析JSON(一)

阅读更多

 

什么是JSON?

1.JSON:Javascript Object Nation

2.JSON是一系列键值对的集合

3.JSON以经被大多数开发人员接受,在网络数据传输中应用相当广泛

4.JSON相对XML来说解析相对方便一些

 

JSON vs XML

1.JSON 和 XML 可读性基本相同

2.JSON 和 XML 同样有丰富的解析手段

3.JSON相对XML来说体积数据小

4.JSON和Javascript的交互更加方便

5.JSON对数据的描述性相对较差

 

有什么不懂的可以去官网去看看:www.json.org


在google android中也有关于解析JSON的类库:JsonReader,但是只能在3.0以后的版本中才可以用,在这里我们用google提供的类库google-gson,可以从code.google.com/p/google-gson/下载jar包。


下面通过一个小例子来学习一下:


例子:

[{"name":"zhangsan","age":22},{"name":"lisi","age":23}]

分析:

1.开始解析数组

2.开始解析对象

3.解析键值对

4.解析键值对

5.解析对象结束

6.开始解析对象

7.解析键值对

8.解析键值对

9.解析对象结束

10.解析数组结束



下面的是一个Activity,很简单只有一个button,并为button添加单击事件,

 

package com.tony.json;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class JsonActivity extends Activity {
    /** Called when the activity is first created. */
	
	private String jsonData = "[{\"name\":\"zhangsan\",\"age\":22},{\"name\":\"lisi\",\"age\":23}]";
	private Button jsonButton;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        jsonButton = (Button) findViewById(R.id.json_button);
        jsonButton.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				JsonUtils jsonUtils = new JsonUtils();
				jsonUtils.parseJson(jsonData);
			}
		});
    }
}

 

 

这个类中主要是解析json数组:

 

package com.tony.json;

import java.io.IOException;
import java.io.StringReader;

import android.util.Log;

import com.google.gson.stream.JsonReader;

public class JsonUtils {
	private static final String TAG = "JsonUtils";
	
	public void parseJson(String jsonData){
		JsonReader reader = new JsonReader(new StringReader(jsonData));
		try {
			reader.beginArray();	// 开始解析数组
			while (reader.hasNext()) {
				reader.beginObject();	// 开始解析对象
				while (reader.hasNext()) {
					String tagName = reader.nextName();	// 得到键值对中的key
					if (tagName.equals("name")) {	// key为name时
						Log.i(TAG, "name--------->" + reader.nextString());	// 得到key中的内容
					}else if (tagName.equals("age")) {	// key为age时
						Log.i(TAG, "age--------->" + reader.nextInt());	// 得到key中的内容
					}
				}
				reader.endObject();
			}
			reader.endArray();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

下面是运行后在logcat中打印出的结果:

 

 

 

1
0
分享到:
评论

相关推荐

    Android Studio解析JSON对象

    本主题聚焦于“Android Studio解析JSON对象”,这是一个非常关键且实用的技能,因为JSON作为一种轻量级的数据交换格式,广泛应用于网络通信和数据存储。JSON对象可以方便地表示各种复杂的数据结构,包括数组、键值...

    android 动态解析获取json数据的键值对

    这个"android 动态解析获取json数据的键值对"的项目就是针对这种情况的一个实例,主要展示了如何在Eclipse环境下,不预先创建JSON键值对应的实体类,而是动态地解析JSON并将其内容显示在列表上。 首先,我们要理解...

    Android_JSON数据解析

    本篇将详细讲解如何在Android应用中解析JSON数据,主要涉及以下几个方面: 1. JSON基本结构 JSON由两种基本结构构成:对象(Object)和数组(Array)。对象是以花括号 `{}` 包围的键值对集合,键用双引号括起,如`...

    android JSON解析放入ListView

    在Android开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于服务器与客户端之间的数据传输。ListView是Android系统提供的一个强大的控件,可以用来展示大量的列表数据。将JSON解析并...

    Android Studio解析JSON数组

    在这个场景中,我们将探讨如何在Android Studio中解析JSON数组,并将获取的数据展示在ListView上。这个过程对于任何初学者来说都是一个重要的学习点,因为它涉及到网络数据获取、JSON解析以及UI展示。 首先,我们...

    Android应用源码之Android 解析json_dome.zip

    这个压缩包"Android应用源码之Android 解析json_dome.zip"提供了关于如何在Android应用中解析JSON的示例代码,对于学习Android开发中的网络数据处理非常有帮助。 首先,我们需要了解JSON的基本结构。JSON基于...

    android中gson解析json数据例程

    本篇文章将详细介绍如何在Android应用中使用Gson库解析JSON数据,以便更好地理解这一关键知识点。 首先,我们要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    Android中Json数据解析

    总之,在Android中解析JSON数据是应用程序与服务器交互的重要一环。熟练掌握Gson库和org.json库的使用,能够帮助开发者更高效地处理网络数据,提升应用性能。通过不断实践,你可以更加灵活地运用这些工具,解决各种...

    Gson解析json数据

    在本文中,我们将深入探讨如何使用Gson解析JSON数据,包括处理简单JSON和复杂的JSON结构。 首先,我们要了解JSON的基本概念。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...

    Android读取本地json文件的方法(解决显示乱码问题)

    - **Android操作JSON格式数据**:Android提供了Gson库、org.json库等工具来解析和生成JSON数据。 - **Android数据库操作**:SQLite是Android内置的轻量级数据库,可以用于持久化数据。 - **Android Activity操作**:...

    老罗android 解析json数据源码

    在"06.android解析json数据(ppt&源码)"这个文件中,可能包含了讲解PPT和实际的源码示例。通过阅读源码,你可以更深入地理解这些概念如何在实际项目中应用。源码示例通常会涵盖上述知识点的使用,包括如何创建JSON...

    Android 安卓 json解析

    或解析JSON数组: ```java JSONArray jsonArray = new JSONArray(jsonData); for (int i = 0; i (); i++) { JSONObject obj = jsonArray.getJSONObject(i); // 解析对象属性 } ``` ### 3. 在线JSON解析 在线JSON...

    Android解析Json数据的PPT和源码

    这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...

    Android解析json速度对比

    在“Android解析json速度对比”的测试中,我们通常会设置一个标准的JSON数据集,然后使用这三个库进行反序列化操作,并记录每种库所花费的时间。测试方法可能包括以下步骤: 1. **数据准备**:创建一个包含大量键值...

    安卓Android源码——解析json_dome.zip

    本教程将通过分析“安卓Android源码——解析json_dome.zip”中的内容,深入讲解如何在Android应用中解析JSON数据。 首先,我们需要了解Android SDK提供的一些关键类来处理JSON,主要包括`JSONObject`和`JSONArray`...

    android 优化解析json例子

    首先,我们需要了解在Android中解析JSON的两种主要方法:`org.json`库和Gson库。`org.json`是Android SDK自带的库,适合简单的JSON解析;而Gson是Google提供的库,功能更强大,能够将JSON对象直接映射为Java对象,...

    android中JSON数据解析

    本篇将深入探讨如何在Android中解析JSON数据。 首先,我们需要了解JSON的基本结构。JSON数据可以表示为对象或数组,对象由键值对组成,用花括号{}包围,键和值之间用冒号隔开,多个键值对用逗号分隔;数组是一系列...

    安卓Android源码——安卓Android 解析json_dome.zip

    本资料“安卓Android源码——安卓Android 解析json_dome.zip”聚焦于如何在Android应用中解析JSON数据,为开发者提供了实践案例和代码示例。以下将详细介绍Android中处理JSON的相关知识点。 1. JSON基本结构: ...

    Android Json解析

    我们可以使用这两个类来解析JSON字符串,并从中提取数据。 1. `JSONObject` 对于上述例子,我们可以通过以下方式创建一个`JSONObject`并读取数据: ```java String jsonString = "{\"name\":\"John\",\"age\":30,\...

    Android Studio下使用Google Gson解析Json数据示例

    本篇文章将详细介绍如何在Android Studio环境下使用Google Gson解析Json数据。 首先,我们需要在项目中引入Gson库。打开build.gradle模块文件,并在dependencies块中添加以下依赖: ```groovy dependencies { ...

Global site tag (gtag.js) - Google Analytics