安卓新手学习笔记 ——XML解析与JSON解析
来源:互联网 发布:伪娘被肛哭 知乎 编辑:程序博客网 时间:2024/05/16 18:01
刚开始学习安卓,跟着郭霖大大的《第一行代码》,开始慢慢打开安卓这扇大门。一路看下来,看到不会的就在网上搜资料,或者看官方的reference,基本还是蛮顺利的。不过遇到问题自己想办法解决的确很好,然而总觉得好像缺点什么,所以打算开始记录下自己学习过程中遇到的一些问题,加深一下印象。如果有人和我遇到过同样的问题,看了我的文章,能帮到大家当然更好啦。
常用的解析XML数据的方式有Pull解析和SAX解析,Pull解析主要借助了XmlPullParser对象,而SAX解析则通过继承DefaultHandler类。
首先是Pull解析:
XmlPullParserFactory factory=XmlPullParserFactory.newInstance();XmlPullParser xmlPullParser=factory.newPullParser();xmlPullParser.setInput(new StringReader(xmlData));得到一个XmlPullParser对象后就可以通过getName()方法得到节点名,再通过循环进行解析。
SAX解析也很简单,通过复写DefaultHandler类中的五个方法来解析:
public void startDocument() throws SAXException {}public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException{}public void characters(char[] ch, int start, int length) throws SAXException{}public void endElement(String uri, String localName, String qName) throws SAXException{}public void endDocument() throws SAXException{}之后通过XMLParserFactory得到XMLReader的实例:
SAXParserFactory factory = SAXParserFactory.newInstance();XMLReader xmlReader = factory.newSAXParser().getXMLReader();
再将继承自DefaultHandler类的ContentHandler实例设置到XMLReader中,并通过InputSource类开始执行解析:
xmlReader.setContentHandler(handler);xmlReader.parse(new InputSource(new StringReader(xmlData)));
首先来看下如何用JSONObject解析吧:
第一步把JSON字符串转换为JSONArray:
JSONArray jsonArray = new JSONArray(jsonData);
然后通过getJSONObject()方法把JSONArray中的内容循环读取出来就行了:
for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); String id = jsonObject.getString("id"); String name = jsonObject.getString("name"); String version = jsonObject.getString("version");}这里我的JSON数据中每条数据只有三个属性。
最后是用GSON解析JSON数据,jar包下载下来之后复制到libs下,然后修改下gradle文件同步后就能导入了,使用起来非常简单:
Gson gson=new Gson();List<App> appList=gson.fromJson(jsonData,new TypeToken<List<App>>(){}.getType());没错,只要两行代码就行了,声明Gson对象,然后通过fromJson()方法获得一个JSON文件的List<>对象就行了,具体使用可以看GSON api文档。原理很简单,它可以将一段JSON格式的字符串自动映射成一个对象,所以就不需要你手动编写代码来解析了,不过需要你根据JSON数据定义一个类,和Gson类映射出来的对象对应上。
好了,以上就是XML解析与JSON解析的要点了,想要熟练掌握当然还是要多看api文档、多用才行。接下来再说说我遇到的问题吧。由于我使用的是windows平台,布置Apache服务器比较麻烦,不过最后找到一个比较方便的途径,通过XAMPP,直接安装好就能用了,而且还可以选择部署tomcat、php、MySql。
部署好Apache服务器后还有一个连接的问题,由于我是用真机测试的,所以就不能像模拟器那样用10.0.2.2来连接了,而是要通过局域网的IP地址,然而手头并没有路由器,所以最后想了个办法,通过笔记本开启一个虚拟WiFi,然后手机连接这个WiFi并更改URL为本机的IP地址,这样问题就顺利的解决了!
- 安卓新手学习笔记 ——XML解析与JSON解析
- 安卓笔记 xml解析
- 学习笔记—解析XML
- 安卓学习笔记(12)-Json格式数据解析
- 安卓学习笔记07——使用pull解析xml文件
- 安卓速记3----网络编程JSON解析与XML解析
- 网络请求与json数据解析——学习笔记
- Android学习笔记-XML解析和JSON
- UI进阶——XML解析与Json解析
- iOS网络编程开发—JSON解析与XML解析
- XML解析 与 JSON 解析
- 【安卓笔记】对json的解析
- XML与JSON解析
- XML与JSON解析
- 安卓Json解析
- 安卓Json解析
- ruby学习笔记—json解析
- ruby学习笔记—json解析
- malloc函数用法
- Python机器学习实战--(k-近邻算法)
- java中调用ElasticSearch中文分词ik没有起作用
- Spark配置文件详解
- Linux笔记(58)——详解apache源码包安装
- 安卓新手学习笔记 ——XML解析与JSON解析
- iOS应用架构谈 动态部署方案
- Android Developers:控制你的应用程序音量和播放
- [bzoj1875][SDOI2009]HH去散步
- 使用MYSQL常用函数
- oj判题技巧
- leetcode_242_Valid Anagram(easy)(C++)(Java)
- First to CSDN
- iOS应用架构谈 本地持久化方案