Android基础入门教程——7.2.2 Android JSON数据解析

Android基础入门教程——7.2.2 Android JSON数据解析

标签(空格分隔): Android基础入门教程


本节引言:

相信大家肯定对JSON不陌生吧,我们和服务器交互一般用得较多的数据传递方式都是Json字符串的形式,
保存对象,我们也可以写成一个Json字符串然后存储!解析Json不知道你用的是Gson,Fastjson,jackson
等,不过本节我们并不会去用这些第三方的解析库,而是使用Android自带的扣脚Json解析器来解析Json!
好的,开始本节内容!


1.Json概念以及与XML的比较

1)Json是什么?

答:JavaScript Object Natation, 一种轻量级的数据交换格式, 与XML一样,
广泛被采用的客户端和服务端交互的解决方案!具有良好的可读和便于快速编写的特性。

2)Json与XML的比较

  • JSON和XML的数据可读性基本相同;
  • JSON和XML同样拥有丰富的解析手段
  • JSON相对于XML来讲,数据的体积小
  • JSON与JavaScript的交互更加方便
  • JSON对数据的描述性比XML较差
  • JSON的速度要远远快于XML

PS:上述来自于百度~简单点说Json的优点:体积小,节省流量,只是不如XML直观,可读性
稍微差一点而已!

3)Json的格式规范

就像协议一样,肯定是有一套规范的,毕竟双方都是通过Json字符串来传递数据,语法规则如下:
数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组
而Json数据的书写格式:名称/值对 比如: “person”:”coder-pig”
比如一个简单的Json字符串:

[
    { "id":"1","name":"基神","age":"18" },
    { "id":"2","name":"B神","age":"18"  },
    { "id":"3","name":"曹神","age":"18" }
]

我们除了解析Json还可以自己拼接Json,当然如果你自己拼了一个Json字符串又不知道对不对,
可以百度随便找一个校验工具,比如:
http://www.bejson.com/把Json字符串贴上去,校验下就好!


2.Android给我们提供的扣脚Json解析类

这些API都存在于org.json包下,而我们用到的类有下面这些:

  • JSONObject
    Json对象,可以完成Json字符串与Java对象的相互转换
  • JSONArray
    Json数组,可以完成Json字符串与Java集合或对象的相互转换
  • JSONStringer
    Json文本构建类,这个类可以帮助快速和便捷的创建JSON text,
    每个JSONStringer实体只能对应创建一个JSON text
  • JSONTokener:Json解析类
  • JSONException:Json异常

3.代码示例:解析Json字符串:

PS:这里我们就不另外写servlet或者请求网站,直接把Json写到字符串中来解析,模拟下就算了!

1)简单的Json字符串解析示例:

我们解析的是上面这个简单的Json,首先我们来写一个POJO类:

Person.java

/**
 * Created by Jay on 2015/9/8 0008.
 */
public class Person {
    private String id;
    private String name;
    private String age;
    public void setId(String id){
        this.id = id;
    }
    public String getId(){
        return this.id;
    }
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }
    public void setAge(String age){
        this.age = age;
    }
    public String getAge(){
        return this.age;
    }
    @Override
    public String toString() {
        return this.name + "~年方:" + this.age;
    }
}

写一个解析上述Json字符串的方法:

 private void parseEasyJson(String json){
        persons = new ArrayList<Person>();
        try{
            JSONArray jsonArray = new JSONArray(json);
            for(int i = 0;i < jsonArray.length();i++){
                JSONObject jsonObject = (JSONObject) jsonArray.get(i);
                Person person = new Person();
                person.setId(i+"");
                person.setName(jsonObject.getString("name"));
                person.setAge(jsonObject.getString("age"));
                persons.add(person);
            }
        }catch (Exception e){e.printStackTrace();}
    }

运行效果图

嘿嘿,很简单是吧,接下来我们找一个复杂点的!


2)复杂的Json字符串解析示例:

如果是这样的Json字符串呢?

呵呵,那就需要我们一步步来扣数据了:

解析代码如下

    private void parseDiffJson(String json) {
        try {
            JSONObject jsonObject1 = new JSONObject(json);
            Log.e("Json", json);
            JSONArray jsonArray = jsonObject1.getJSONArray("ch");
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = (JSONObject) jsonArray.get(i);
                //取出name
                String sname = jsonObject.getString("names");
                JSONArray jarray1 = jsonObject.getJSONArray("data");
                JSONArray jarray2 = jsonObject.getJSONArray("times");
                Log.e("Json", sname);
                Log.e("Json", jarray1.toString());
                Log.e("Json", jarray2.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

看下打印的Log:

当然还有一层,有兴趣你就自己扣…


本节小结:

好的,使用Android给我们提供的扣脚Json解析类果然要慢慢扣,当然你也可以将解析的过程
反过来,自己拼接JSON,时间关系,这里就慢慢拼接了,哈哈,当然进阶部分我们
学习了第三方的一些Json解析库就轻松多了,~好的,本节就到这里,谢谢~

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
目录 第一篇 Android 系统结构和SDK 使用............................................................................................................................ 5 第1 章 Android 的系统介绍........................................................................................................................................... 5 1.1 系统介绍........................................................................................................................................................... 5 1.2 软件结构和使用的工具................................................................................................................................... 7 第2 章 Android SDK 的开发环境.................................................................................................................................. 10 2.1 Android SDK 的结构...................................................................................................................................... 10 2.2 Android SDK 环境安装.................................................................................................................................. 11 2.2.1. 安装JDK 基本Java 环境。................................................................................................................ 11 2.2.2. 安装Eclipse........................................................................................................................................... 12 2.2.3. 获得Android SDK ...............................................................................................................................12 2.2.4(1). 在Eclipse 3.4(Ganymede)中安装ADT............................................................................... 14 2.2.4(2). 在Eclipse 3.5(Galileo)中安装ADT..................................................................................... 17 2.2.5. 在Eclipse 中配置Android SDK ......................................................................................................... 20 2.3 Android 中运行仿真器环境............................................................................................................................ 21 2.3.1. 建立Android 虚拟设备....................................................................................................................... 21 2.3.2. 运行虚拟设备........................................................................................................................................ 22 2.3.3. 使用Android 中的工具....................................................................................................................... 23 2.3.4. 使用logcat............................................................................................................................................. 24 2.3.5. 使用仿真器控制.................................................................................................................................... 25 2.3.6. 命令行工具adb、mksdcard 等.......................................................................................................... 26 2.3.7. 使用设备控制........................................................................................................................................ 28 2.4 Android 中建立工程........................................................................................................................................ 29 2.4.1. 建立工程................................................................................................................................................ 29 2.4.2. 查看和编辑各个文件............................................................................................................................ 31 2.4.3. 运行工程................................................................................................................................................ 33 第二篇 Android 应用程序的概述和框架....................................................................................................................... 36 第3 章 Android 应用层程序的开发方式....................................................................................................................... 36 3.1 应用程序开发的结构....................................................................................................................................... 36 3.2 API 参考文档的使用........................................................................................................................................ 36 第4 章Android 应用程序示例........................................................................................................................................ 40 4.1 HelloActivity 程序的运行............................................................................................................................ 40 4.2 HelloActivity 的源文件结构........................................................................................................................ 41 4.2.1.Android.mk 文件................................................................................................................................. 41 4.2.2.AndroidManifest.xml 文件................................................................................................................. 42 4.2.3.源代码文件........................................................................................................................................... 42 4.2.4.布局文件............................................................................................................................................... 43 4.2.5.其他资源文件....................................................................................................................................... 43 4.3 HelloActivity 的编译结构............................................................................................................................ 43 4.4 SkeletonApp 的程序的运行........................................................................................................................ 44 4.5 SkeletonApp 的源文件结构........................................................................................................................ 44 4.6 SkeletonApp 的编译结构............................................................................................................................ 46 第5 章 Android 应用程序的内容................................................................................................................................... 47 5.1 Android 应用程序的概念性描述................................................................................................................. 47 5.1.1.应用程序的组成部分........................................................................................................................... 47 5.1.2.应用程序的生命周期........................................................................................................................... 48 5.2 应用程序包含的各个文件.............................................................................................................................50 5.3 使用am 工具启动Android 应用程序........................................................................................................ 51 2 第三篇Android 的UI 系统实现..................................................................................................................................... 53 第6 章 UI 的基本外形和控制........................................................................................................................................ 53 6.1 控件和基本事件的响应................................................................................................................................. 53 6.1.1.事件响应方法....................................................................................................................................... 54 6.1.2.第二种响应方法................................................................................................................................... 56 6.1.3.第三种响应方法................................................................................................................................... 57 6.2 键盘事件的响应............................................................................................................................................... 57 6.3 运动事件的处理............................................................................................................................................... 59 6.4 屏幕间的跳转和事件的传递........................................................................................................................... 62 6.4.1.跳转的方法........................................................................................................................................... 62 6.4.2.带有返回值的跳转...............................................................................................................................63 6.5 菜单的使用........................................................................................................................................................ 66 6.6 弹出对话框........................................................................................................................................................ 67 6.6.1. 提示信息和两个按钮的对话框............................................................................................................ 68 6.6.2. 提示信息和三个按钮的对话框............................................................................................................ 69 6.6.3. 列表项对话框........................................................................................................................................ 70 6.6.4. 单选项和按钮对话框............................................................................................................................ 70 6.6.5. 复选项和按钮对话框............................................................................................................................ 71 6.6.6. 文本的按键对话框(使用布局文件)................................................................................................ 72 6.7 样式的设置....................................................................................................................................................... 74 6.7.1.预定样式对话框................................................................................................................................... 74 6.7.2.自定义样式对话框...............................................................................................................................74 6.7.3.窗口透明样式示例...............................................................................................................................75 第7 章控件(Widget)的使用..................................................................................................................................... 78 7.1 Android 中控件的层次结构......................................................................................................................... 78 7.2 基本控件的使用............................................................................................................................................. 79 7.2.1.普通按钮............................................................................................................................................... 79 7.2.2.图像区域............................................................................................................................................... 80 7.2.3.图像按钮............................................................................................................................................... 82 7.2.4.进度条................................................................................................................................................... 83 7.2.5.多种控件............................................................................................................................................... 85 7.3 自定义的视图................................................................................................................................................... 86 第8 章视图组(ViewGroup)和布局(Layout)的使用........................................................................................... 89 8.1 Android 的屏幕元素体系................................................................................................................................ 89 8.2 几种独立使用的视图组................................................................................................................................... 90 8.2.1.网页视图............................................................................................................................................... 90 8.2.2.旋转按钮............................................................................................................................................... 91 8.2.3.文本切换器........................................................................................................................................... 93 8.2.4.图像切换器........................................................................................................................................... 94 8.3 作为简单容器使用的视图组........................................................................................................................... 95 8.3.1.单选按钮组........................................................................................................................................... 95 8.3.2.使用滚动条........................................................................................................................................... 96 8.4 布局(Layout) .............................................................................................................................................. 99 8.4.1.基本的布局内容................................................................................................................................... 99 8.4.2.线性布局(LinearLayout) ............................................................................................................. 100 8.4.3.相对布局(RelativeLayout)........................................................................................................... 101 8.4.4.表单布局(Table Layout).............................................................................................................. 103 8.5 网格(Grid)视图组................................................................................................................................... 103 3 8.6 列表(List)视图组.................................................................................................................................... 107 8.7 使用Tab 组织UI ......................................................................................................................................... 109 第9 章 2D 图形接口的使用......................................................................................................................................... 113 9.1 使用2D 图形接口的程序结构。.................................................................................................................. 113 9.2 图像、图形、文本的基本绘制..................................................................................................................... 114 9.3 文本的对齐方式............................................................................................................................................. 116 9.4 使用路径效果(PathEffect) ..................................................................................................................... 118 9.5 剪裁效果......................................................................................................................................................... 119 9.6 记录绘制的过程............................................................................................................................................. 121 9.7 动画效果......................................................................................................................................................... 123 第10 章 OpenGL 3D 图形的使用................................................................................................................................125 10.1 使用OpenGL 图形接口的程序结构。..................................................................................................... 125 10.2 基本的绘制................................................................................................................................................... 126 10.3 渲染器的实现............................................................................................................................................... 127 10.4 3D 动画效果的实现...................................................................................................................................... 129 4
第1章 Android的系统介绍5 1.1 系统介绍5 1.2 软件结构和使用的工具7 第2章 Android SDK的开发环境10 2.1 Android SDK的结构10 2.2 Android SDK环境安装11 2.2.1. 安装JDK基本Java环境11 2.2.2. 安装Eclipse12 2.2.3. 获得Android SDK12 2.2.4(1). 在Eclipse 3.4(Ganymede)中安装ADT14 2.2.4(2). 在Eclipse 3.5(Galileo)中安装ADT17 2.2.5. 在Eclipse中配置Android SDK20 2.3 Android中运行仿真器环境21 2.3.1. 建立Android虚拟设备21 2.3.2. 运行虚拟设备22 2.3.3. 使用Android中的工具23 2.3.4. 使用logcat24 2.3.5. 使用仿真器控制25 2.3.6. 命令行工具adb、mksdcard等26 2.3.7. 使用设备控制28 2.4 Android中建立工程29 2.4.1. 建立工程29 2.4.2. 查看和编辑各个文件31 2.4.3. 运行工程33 第二篇 Android应用程序的概述和框架36 第3章 Android应用层程序的开发方式36 3.1 应用程序开发的结构36 3.2 API参考文档的使用36 第4章Android应用程序示例40 4.1 HelloActivity程序的运行40 4.2 HelloActivity的源文件结构41 4.2.1.Android.mk文件41 4.2.2.AndroidManifest.xml文件42 4.2.3.源代码文件42 4.2.4.布局文件43 4.2.5.其他资源文件43 4.3 HelloActivity的编译结构43 4.4 SkeletonApp的程序的运行44 4.5 SkeletonApp的源文件结构44 4.6 SkeletonApp的编译结构46 第5章 Android应用程序的内容47 5.1 Android应用程序的概念性描述47 5.1.1.应用程序的组成部分47 5.1.2.应用程序的生命周期48 5.2 应用程序包含的各个文件50 5.3 使用am工具启动Android应用程序51 第三篇Android的UI系统实现53 第6章 UI的基本外形和控制53 6.1 控件和基本事件的响应53 6.1.1.事件响应方法54 6.1.2.第二种响应方法56 6.1.3.第三种响应方法57 6.2 键盘事件的响应57 6.3 运动事件的处理59 6.4 屏幕间的跳转和事件的传递62 6.4.1.跳转的方法62 6.4.2.带有返回值的跳转63 6.5菜单的使用66 6.6弹出对话框67 6.6.1. 提示信息和两个按钮的对话框68 6.6.2. 提示信息和三个按钮的对话框69 6.6.3. 列表项对话框70 6.6.4. 单选项和按钮对话框70 6.6.5. 复选项和按钮对话框71 6.6.6. 文本的按键对话框(使用布局文件72 6.7 样式的设置74 6.7.1.预定样式对话框74 6.7.2.自定义样式对话框74 6.7.3.窗口透明样式示例75 第7章控件(Widget)的使用78 7.1 Android中控件的层次结构78 7.2 基本控件的使用79 7.2.1.普通按钮79 7.2.2.图像区域80 7.2.3.图像按钮82 7.2.4.进度条83 7.2.5.多种控件85 7.3 自定义的视图86 第8章视图组(ViewGroup)和布局(Layout)的使用89 8.1 Android的屏幕元素体系89 8.2 几种独立使用的视图组90 8.2.1.网页视图90 8.2.2.旋转按钮91 8.2.3.文本切换器93 8.2.4.图像切换器94 8.3 作为简单容器使用的视图组95 8.3.1.单选按钮组95 8.3.2.使用滚动条96 8.4 布局(Layout99 8.4.1.基本的布局内容99 8.4.2.线性布局(LinearLayout)100 8.4.3.相对布局(RelativeLayout)101 8.4.4.表单布局(Table Layout)103 8.5 网格(Grid)视图组103 8.6 列表(List)视图组107 8.7 使用Tab组织UI109 第9章 2D图形接口的使用113 9.1 使用2D图形接口的程序结构113 9.2 图像、图形、文本的基本绘制114 9.3 文本的对齐方式116 9.4 使用路径效果(PathEffect)118 9.5 剪裁效果119 9.6 记录绘制的过程121 9.7 动画效果123 第10章 OpenGL 3D图形的使用125 10.1 使用OpenGL图形接口的程序结构125 10.2 基本的绘制126 10.3 渲染器的实现127 10.4 3D动画效果的实现129
第一篇Android系统结构和SDK使用............................................................................................................................5 第1章 Android的系统介绍...........................................................................................................................................5 1.1 系统介绍...........................................................................................................................................................5 1.2 软件结构和使用的工具...................................................................................................................................7 第2章 Android SDK的开发环境..................................................................................................................................10 2.1 Android SDK的结构......................................................................................................................................10 2.2 Android SDK环境安装..................................................................................................................................11 2.2.1. 安装JDK基本Java环境。................................................................................................................11 2.2.2. 安装Eclipse...........................................................................................................................................12 2.2.3. 获得Android SDK...............................................................................................................................12 2.2.4(1). 在Eclipse 3.4(Ganymede)中安装ADT...............................................................................14 2.2.4(2). 在Eclipse 3.5(Galileo)中安装ADT.....................................................................................17 2.2.5. 在Eclipse中配置Android SDK.........................................................................................................20 2.3 Android中运行仿真器环境............................................................................................................................21 2.3.1. 建立Android虚拟设备.......................................................................................................................21 2.3.2. 运行虚拟设备........................................................................................................................................22 2.3.3. 使用Android中的工具.......................................................................................................................23 2.3.4. 使用logcat.............................................................................................................................................24 2.3.5. 使用仿真器控制....................................................................................................................................25 2.3.6. 命令行工具adb、mksdcard等..........................................................................................................26 2.3.7. 使用设备控制........................................................................................................................................28 2.4 Android中建立工程........................................................................................................................................29 2.4.1. 建立工程................................................................................................................................................29 2.4.2. 查看和编辑各个文件............................................................................................................................31 2.4.3. 运行工程................................................................................................................................................33 第二篇 Android应用程序的概述和框架.......................................................................................................................36 第3章 Android应用层程序的开发方式.......................................................................................................................36 3.1 应用程序开发的结构.......................................................................................................................................36 3.2 API参考文档的使用........................................................................................................................................36 第4章Android应用程序示例........................................................................................................................................40 4.1 HelloActivity程序的运行............................................................................................................................40 4.2 HelloActivity的源文件结构........................................................................................................................41 4.2.1.Android.mk文件.................................................................................................................................41 4.2.2.AndroidManifest.xml文件.................................................................................................................42 4.2.3.源代码文件...........................................................................................................................................42 4.2.4.布局文件...............................................................................................................................................43 4.2.5.其他资源文件.......................................................................................................................................43 4.3 HelloActivity的编译结构............................................................................................................................43 4.4 SkeletonApp的程序的运行........................................................................................................................44 4.5 SkeletonApp的源文件结构........................................................................................................................44 4.6 SkeletonApp的编译结构............................................................................................................................46 第5章 Android应用程序的内容...................................................................................................................................47 5.1 Android应用程序的概念性描述.................................................................................................................47 5.1.1.应用程序的组成部分...........................................................................................................................47 5.1.2.应用程序的生命周期...........................................................................................................................48 5.2 应用程序包含的各个文件.............................................................................................................................50 5.3 使用am工具启动Android应用程序........................................................................................................51 2 www.linuxidc.com 第三篇Android的UI系统实现.....................................................................................................................................53 第6章 UI的基本外形和控制........................................................................................................................................53 6.1 控件和基本事件的响应.................................................................................................................................53 6.1.1.事件响应方法.......................................................................................................................................54 6.1.2.第二种响应方法...................................................................................................................................56 6.1.3.第三种响应方法...................................................................................................................................57 6.2 键盘事件的响应...............................................................................................................................................57 6.3 运动事件的处理...............................................................................................................................................59 6.4 屏幕间的跳转和事件的传递...........................................................................................................................62 6.4.1.跳转的方法...........................................................................................................................................62 6.4.2.带有返回值的跳转...............................................................................................................................63 6.5菜单的使用........................................................................................................................................................66 6.6弹出对话框........................................................................................................................................................67 6.6.1. 提示信息和两个按钮的对话框............................................................................................................68 6.6.2. 提示信息和三个按钮的对话框............................................................................................................69 6.6.3. 列表项对话框........................................................................................................................................70 6.6.4. 单选项和按钮对话框............................................................................................................................70 6.6.5. 复选项和按钮对话框............................................................................................................................71 6.6.6. 文本的按键对话框(使用布局文件)................................................................................................72 6.7 样式的设置.......................................................................................................................................................74 6.7.1.预定样式对话框...................................................................................................................................74 6.7.2.自定义样式对话框...............................................................................................................................74 6.7.3.窗口透明样式示例...............................................................................................................................75 第7章控件(Widget)的使用.....................................................................................................................................78 7.1 Android中控件的层次结构.........................................................................................................................78 7.2 基本控件的使用.............................................................................................................................................79 7.2.1.普通按钮...............................................................................................................................................79 7.2.2.图像区域...............................................................................................................................................80 7.2.3.图像按钮...............................................................................................................................................82 7.2.4.进度条...................................................................................................................................................83 7.2.5.多种控件...............................................................................................................................................85 7.3 自定义的视图...................................................................................................................................................86 第8章视图组(ViewGroup)和布局(Layout)的使用...........................................................................................89 8.1 Android的屏幕元素体系................................................................................................................................89 8.2 几种独立使用的视图组...................................................................................................................................90 8.2.1.网页视图...............................................................................................................................................90 8.2.2.旋转按钮...............................................................................................................................................91 8.2.3.文本切换器...........................................................................................................................................93 8.2.4.图像切换器...........................................................................................................................................94 8.3 作为简单容器使用的视图组...........................................................................................................................95 8.3.1.单选按钮组...........................................................................................................................................95 8.3.2.使用滚动条...........................................................................................................................................96 8.4 布局(Layout)..............................................................................................................................................99 8.4.1.基本的布局内容...................................................................................................................................99 8.4.2.线性布局(LinearLayout).............................................................................................................100 8.4.3.相对布局(RelativeLayout)...........................................................................................................101 8.4.4.表单布局(Table Layout)..............................................................................................................103 8.5 网格(Grid)视图组...................................................................................................................................103 3 www.linuxidc.com 8.6 列表(List)视图组....................................................................................................................................107 8.7 使用Tab组织UI.........................................................................................................................................109 第9章 2D图形接口的使用.........................................................................................................................................113 9.1 使用2D图形接口的程序结构。..................................................................................................................113 9.2 图像、图形、文本的基本绘制.....................................................................................................................114 9.3 文本的对齐方式.............................................................................................................................................116 9.4 使用路径效果(PathEffect).....................................................................................................................118 9.5 剪裁效果.........................................................................................................................................................119 9.6 记录绘制的过程.............................................................................................................................................121 9.7 动画效果.........................................................................................................................................................123 第10章 OpenGL 3D图形的使用................................................................................................................................125 10.1 使用OpenGL图形接口的程序结构。.....................................................................................................125 10.2 基本的绘制...................................................................................................................................................126 10.3 渲染器的实现...............................................................................................................................................127 10.4 3D动画效果的实现......................................................................................................................................129

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值