位置: 编程技术 - 正文

Android 网络编程之 XML 和 JSON 解析(安卓网络编程面试题)

编辑:rootadmin

推荐整理分享Android 网络编程之 XML 和 JSON 解析(安卓网络编程面试题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android网络编程需要哪些基础,android网络编程,android网络编程技术题,android网络编程技术题,android网络编程技术题,android网络编程 百度网盘,android网络编程,android网络编程面试题,内容如对您有帮助,希望把文章链接给更多的朋友!

通常情况下,每个需要访问网络的应用程序都会有一个自己的服务器,我们可以向服务器提交数据,也可以从服务器上获取数据。网络上传输数据时最常用的格式有两种:XML 和 JSON。

这里以之前的一篇文章 Android网络访问之HttpURLConnection和HttpClient 为基础,继续添加代码,介绍 XML 和 JSON 的解析方式。

0. 搭建 Web 服务器

这里首先需要搭建了一个简单的 Web 服务器,在这个服务器上提供一段 XML 格式文本和一段 JSON 格式文本,然后在程序里访问这个服务器,分别对其进行解析。

关于如何下载安装 Apache 服务器,这里有篇文章写得很详细: 如何从Apache官网下载windows版apache服务器

0.1 添加 XML 文件

安装好之后,在其文件夹下的 htdocs 文件夹中新建一个名为 get_data.xml 的文件,添加如下代码:

此时在浏览器中访问 这个网址,显示如下:

0.2 添加 JSON 文件

在 htdocs 文件夹中新建一个名为 get_data.json 的文件,添加如下代码:

在浏览器访问

注意需要开启相应服务。

1. 解析 XML 格式数据

解析 XML 格式数据方法有很多种,这里介绍常用的两种:Pull 方式和 SAX 方式(此外 DOM 解析方式也比较常用)。 修改MainActivity 中 sendRequestWithHttpClient() 方法中的代码,将 http 请求网址改为 (PS: .0.2.2 对模拟器来说就是电脑本机 IP 地址)。

1.1 Pull

创建 parseXMLWithPull() 方法,并在 sendRequestWithHttpClient() 方法中调用它即可,且无需再发送 Message。代码如下:

运行程序,LogCat 中显示如下: 说明已经将 XML 文件中的内容成功解析出来了。

1.2 SAX

SAX 解析较 Pull 方式略复杂(通常会新建一个类继承自 DefaultHandler,并重写父类的5个方法),但在语义方面更清晰。 新建一个类 ContentHandler 继承自 DefaultHandler,代码如下:

Android 网络编程之 XML 和 JSON 解析(安卓网络编程面试题)

接下来在 MainActivity 中添加 parseXMLWithSAX() 方法,并在 sendRequestWithHttpClient() 方法中调用它即可,代码如下:

运行程序,效果同上。

2. 解析 JSON 格式数据

JSON 与 XML 相比的优缺点:

优点:体积小,省流量。缺点:语义性较差。

解析 JSON 格式的数据也有多种方法,这里介绍两种:JSONObject 和 GSON。

2.1 JSONObject

在 MainActivity 中创建 parseJSONWithJSONObject() 方法,并在 sendRequestWithHttpClient() 方法中调用它即可,同样无需发送 Message。代码如下:

注意要将 http 请求网址改为 中显示如下:

2.2 GSON

GSON 并未添加到 Android 的官方 API 中,因此若想使用的话需要在项目中添加 GSON 的 jar 包(下载 后将其添加到 libs 文件夹下即可)。

新建一个 APP 类,代码如下:

在 MainActivity 中创建 parseJSONWithGSON() 方法,并在 sendRequestWithHttpClient() 方法中调用它即可,同样无需发送 Message。代码如下:

运行程序,结果同上。

源码下载

《第一行代码》 学习笔记。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Spring+MyBatis+Velocity+BootStrap实现Android混合App快速高效服务端 大资源系统数据展示原型效果架构选型MyBatis:快速、高效、简洁的数据库数据映射到Java容器中,采用通用的Mapper文件几乎不用针对每个对象写映射文件

Android基础知识_Application的用途 一、Application概述1.API类的继承关系2.API类的概述那些需要保持全局应用程序状态的基类。通过在AndroidManifest.xml的application标签指定它的名字你能提供自

Android调用相机并将照片存储到sd卡上 转载自:点击打开链接Android中实现拍照有两种方法,一种是调用系统自带的相机,然后使用其返回的照片数据。还有一种是自己用Camera类和其他相关类

标签: 安卓网络编程面试题

本文链接地址:https://www.jiuchutong.com/biancheng/376572.html 转载请保留说明!

上一篇:Android AsyncTask简要分析

下一篇:Spring+MyBatis+Velocity+BootStrap实现Android混合App快速高效服务端

  • 申报个体经营所得税时营业外收入怎么填
  • 个人所得税年度汇算清缴怎么操作
  • 税控盘开票系统怎么升级
  • 二手车交易税是谁交
  • 自动售货机进货渠道
  • 电汇凭证的会计怎么做账
  • 申领的发票多久过期
  • 残疾证挂靠一年多少钱
  • 进项税加计抵减生产性服务
  • 购进国产设备的增值税处理规定
  • 个税专项扣除需要提供哪些依据
  • 品种法怎么计算在产品成本
  • 多计提的工资怎么处理?
  • 贴现费用计算公式
  • 上月多计收入,本月如何调整?
  • 纳税调整税收金额
  • 12月份的收入1月份开具发票,报税时免税吗
  • 工程款为什么要扣税
  • 价内税和价外税区别
  • 企业所得税零申报资产总额怎么填
  • 如何检验发票真伪
  • 个税怎么抵
  • 企业所得税以前年度所得调整
  • 附加税的税率是多少2023年
  • linux CentOS WEB服务器分区方案
  • 三星笔记使用攻略
  • 小规模纳税人开票限额是多少
  • 公司私户利息收入怎么算
  • wind10记事本在哪
  • linux xmrig
  • 其他应付款不需要支付的怎么处理,预算会计
  • 银行同业利息 水利基金
  • 应收票据贴现的性质是什么
  • 现金清查的会计科目
  • 深度学习第一步——Pytorch-Gpu环境配置:Win11/Win10+Cuda10.2+cuDNN8.5.0+Pytorch1.8.0(步步巨细,少走十年弯路)
  • vue3 + ts
  • axios请求设置超时时间
  • input输入改变边框颜色
  • 前端已死?金三银四?你收到offer了吗?
  • 个体工商户注册需要什么材料
  • 线程池中的一个线程执行完一个任务后
  • mongodb主备配置
  • 红字发票信息表怎么打印出来
  • 政府奖励收入要交所得税吗
  • 免税所得包括哪些
  • 开票机号可以随便填吗
  • 小企业会计准则适用于哪些企业
  • 购入商品再卖出
  • 企业进项税和销项税怎么抵扣
  • 增值税专用发票有几联?
  • 冲减应收账款该怎么处理
  • 车辆处置缴纳增值税税率
  • 银行收到工伤保险费怎么做分录
  • 考核奖金属于工资吗
  • 工伤医疗补助可以申请吗
  • 租赁行业的成本
  • 计提应付职工薪酬在借方还是贷方
  • 记帐凭证会计处理程序及其应用
  • win8无法完成更新正在撤销更改怎么办
  • windows 10 周年更新
  • win8 侧边栏
  • 打开 itunes
  • msdev.exe是什么
  • 观察者模式指令
  • cocos2d-js-min.js
  • android游戏排行榜
  • java的匿名内部类
  • shell入门
  • unity projector
  • angular.js
  • android FileNotFoundException(Is a Directory)解决办法
  • js中eval函数是干嘛的
  • 刮刮奖软件下载
  • setBackgroundDrawable和setBackgroundColor的用法
  • 河北省国家税务总局云办税厅
  • 发票在地税能查到,但是国税查不到
  • 个税专项扣除填报错误怎么办
  • 亮点纷呈的意思和造句
  • 云票助手怎么查看开票限额
  • 苏州税务局办税时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设