- 浏览: 733019 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lingsuch:
Android网络连接判断与处理 -
月光照着我:
写的不错,作为笔记了
Android中LayoutInflater的使用 -
智博王锋:
好文章是要顶的!
Android中LayoutInflater的使用 -
云南白药:
...
Android中LayoutInflater的使用 -
万新one:
理解了许多。解释的不错。3Q.
Android中LayoutInflater的使用
什么是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);
- }
- });
- }
- }
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();
- }
- }
- }
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中打印出的结果:
发表评论
-
Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]错误完美解决)
2013-09-11 15:09 9714最近编程时遇到问题:写了一个android小程序,打包后用 ... -
Android 引用外部项目库
2013-02-05 16:36 2921项目中要集成其他项目由于集成项目庞大不想机械的copy,就想 ... -
Android网络连接判断与处理
2013-01-29 16:33 22170获取网络信息需要在AndroidManifest.xml文 ... -
Android有用代码片段2
2013-01-22 19:51 2077记得2011年的时候,整理了android有用代码片段这篇文 ... -
android有用代码片段
2013-01-22 19:48 2872有时候,需要一些小的功能,找到以后,就把它贴到了博客下面, ... -
Android 使用draw9patch技术实现不失真背景
2012-09-23 16:27 3607做人要大度,海纳百川,做事要圆滑,左右逢源,这让我想到了 ... -
Android第三方包组件实现总结
2012-09-03 15:35 2119前沿: 在android开发过程中,往往会需要创建组件 ... -
Android 获取手机总内存和可用内存等信息
2012-08-17 17:35 5884在android开发中,有时候我们想获取手机的一些硬件信息 ... -
Android中attr自定义属性详解
2012-07-19 10:17 1464首先在你需要使用自定义属性的布局文件中定义标签,当 ... -
Android 读取<meta-data>元素的数据
2012-06-21 13:31 1272在AndroidManifest.xml ... -
获取AndroidManifest里的信息
2012-06-21 12:09 993看附件 -
Java基础之软引用、弱引用、虚引用
2012-06-18 10:02 11581、概述 在JDK1.2以前 ... -
Android播放声音MediaPlayer类详细介绍
2012-06-06 13:13 11933MediaPlayer ... -
Android 画图之抗锯齿
2012-05-30 18:00 1977在画图的时候,图片如果旋转或缩放之 ... -
Android 画布绘图
2012-05-30 17:58 31958我们已经介绍了Canvas,在 ... -
Android中LayoutInflater的使用
2012-05-28 12:15 33589Inflater英文意思是膨胀,在Android中应该是扩展的 ... -
Android Matrix理论与应用详解,附三角函数公式
2012-03-19 15:13 5073Matrix学习——基础知识 以前在线性代数中学习了矩阵,对 ... -
Android 实现从网络上异步加载图像
2012-03-17 15:44 1164研究了android从网络上异步加载图像,现总结如下: (1 ... -
Activity中ConfigChanges属性配置描述
2012-02-08 23:01 2119通过设置这个属性可以使Activity捕捉设备状态变化,以下是 ... -
Android代码混淆
2011-12-26 18:23 3318一个xxx.apk提交给测试、 ok,去倒杯水,看看网页 ...
相关推荐
在Android中,我们通常使用`org.json`库或`com.google.gson`库来解析JSON数据。 1. `org.json`库:这是Android SDK自带的一个轻量级库,主要用于解析简单的JSON数据。 - JSONObject:表示一个JSON对象,可以通过`...
在解析JSON之前,我们需要根据JSON的结构创建对应的Java类。假设我们有以下JSON数据: ```json { "users": [ { "name": "张三", "age": 25, "address": { "city": "北京", "country": "中国" } }, { ...
本篇文章将详细介绍如何在Android Studio环境下使用Google Gson解析Json数据。 首先,我们需要在项目中引入Gson库。打开build.gradle模块文件,并在dependencies块中添加以下依赖: ```groovy dependencies { ...
3. 使用GSON解析JSON: - 创建Java对象:首先,你需要创建对应的Java类,这些类的字段名应与JSON中的键对应。 - 创建Gson实例:`Gson gson = new Gson();` - 将JSON字符串转换为Java对象:`MyObject obj = gson....
而Gson是Google开发的一个Java库,用于将Java对象转换为JSON格式的字符串,以及将JSON数据转换回等效的Java对象。本篇文章将深入探讨JSON解析以及Gson库的使用方法。 一、JSON解析基础 JSON是一种独立于语言的数据...
在本文中,我们将深入探讨如何使用Gson解析JSON数据,包括处理简单JSON和复杂的JSON结构。 首先,我们要了解JSON的基本概念。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...
**Android JSON解析框架GSON详解** 在Android应用开发中,数据交换经常采用JSON格式,因为它轻量级、易于阅读和编写,并且被广泛支持。为了高效地解析和生成JSON,Google提供了一个强大的库——GSON。GSON允许将...
本篇文章将详细阐述如何使用Gson库解析JSON文件,帮助开发者理解并掌握这一技能。 首先,我们需要了解什么是JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
本篇文章将详细介绍如何在Android应用中使用Gson库解析JSON数据,以便更好地理解这一关键知识点。 首先,我们要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
本文将详细介绍如何在Eclipse和Android Studio环境下使用Gson库来解析Json数据。 首先,我们来看Eclipse下的Gson使用示例。在Eclipse中,你需要先引入Gson库。这可以通过在项目构建路径中添加Gson的jar文件完成,...
总结,Android中解析JSON数据涉及的关键知识点包括JSON的基本结构、Gson库的使用、JSONObject和JSONArray的操作、Volley库的网络请求以及Retrofit框架的使用。这些工具和技术使得Android开发者能够高效地处理服务器...
在Android中,我们通常使用`org.json`库或者Gson库来解析JSON数据。`org.json`库提供了一些基本的类如`JSONObject`和`JSONArray`,用于解析JSON对象和数组。 1. **使用org.json解析JSON对象:** 当接收到一个JSON...
本教程聚焦于老罗讲解的Android解析JSON数据的源码分析,这对于深入理解JSON处理以及优化应用程序性能至关重要。 首先,我们需要了解JSON的基本结构。JSON是一种基于键值对的格式,数据以键值对的形式存储,如{"key...
使用Gson解析JSON JSON(JavaScript Object Notation)是一种轻量级的文本数据交换格式,独立于语言和平台,使用JavaScript语法来描述数据对象。JSON具有自我描述性,更易理解。JSON解析器和JSON库支持许多不同的...
这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...
本文将详细介绍在Android中解析JSON数据的三种常见方法:原生JSON库、Gson库以及FastJson库。每种方法都有其特点和适用场景,开发者可以根据实际需求选择合适的方法。 ### 1. 原生JSON库 Android系统本身提供了...
2. **Android解析JSON的库** 在Android中,我们通常使用两种库来解析JSON数据: - `org.json`:这是Android SDK自带的库,提供了JSONObject和JSONArray类,可以方便地解析JSON对象和数组。 - `...
这使得开发者无需手动解析JSON字符串,从而极大地提高了开发效率。 2. **JSON与Java对象的映射** Gson的核心在于能够自动映射Java类的字段到JSON对象的属性,反之亦然。它支持基本数据类型、复杂对象结构,包括...
本文将详细介绍如何利用Google的Gson库在Android中解析JSON数据。 首先,为了在Android项目中使用Gson库,你需要从`code.google.com/p/google-gson/downloads/list`下载最新版本的GsonAPI,例如`google-gson-1.7.1-...
**标题:** 谷歌GSON - 解析JSON(Demo) **正文:** 在Android开发中,数据交换经常涉及到JSON格式,而GSON库是Google提供的一个强大的JSON处理库,它使得Java对象与JSON数据之间的转换变得极其简单。本篇文章将...