美文网首页
数据解析

数据解析

作者: gogoingmonkey | 来源:发表于2017-04-26 17:03 被阅读1次

XML数据格式解析

pull解析方式

  调用方法解析:
 private void parseXMLWithPull(String xmlData) {
        try {
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            XmlPullParser xmlPullParser = factory.newPullParser();
            xmlPullParser.setInput(new StringReader(xmlData));
            int eventType = xmlPullParser.getEventType();
            String id = "";
            String name = "";
            String version = "";
            while (eventType != XmlPullParser.END_DOCUMENT) {
                String nodeName = xmlPullParser.getName();
                switch (eventType) {
                    // 开始解析某个结点
                    case XmlPullParser.START_TAG: {
                        if ("id".equals(nodeName)) {
                            id = xmlPullParser.nextText();
                        } else if ("name".equals(nodeName)) {
                            name = xmlPullParser.nextText();
                        } else if ("version".equals(nodeName)) {
                            version = xmlPullParser.nextText();
                        }
                        break;
                    }
                    // 完成解析某个结点
                    case XmlPullParser.END_TAG: {
                        if ("app".equals(nodeName)) {
                            Log.d("MainActivity", "id is " + id);
                            Log.d("MainActivity", "name is " + name);
                            Log.d("MainActivity", "version is " + version);
                        }
                        break;
                    }
                    default:
                        break;
                }
                eventType = xmlPullParser.next();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

sax解析方式

private void parseXMLWithSAX(String xmlData) {
      try {
          SAXParserFactory factory = SAXParserFactory.newInstance();
          XMLReader xmlReader = factory.newSAXParser().getXMLReader();
          ContentHandler handler = new ContentHandler();
          // 将ContentHandler的实例设置到XMLReader中
          xmlReader.setContentHandler(handler);
          // 开始执行解析
          xmlReader.parse(new InputSource(new StringReader(xmlData)));
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
    一般要创建一个类继承DefaultHandler并重写那5个方法,还要创建一个content类,这里代码比较复杂,就不贴了,后面给出项目地址。

JSON 数据格式解析

#JSONObject
private void parseJSONWithJSONObject(String jsonData) {
      try {
          JSONArray jsonArray = new JSONArray(jsonData);
          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");
              Log.d("MainActivity", "id is " + id);
              Log.d("MainActivity", "name is " + name);
              Log.d("MainActivity", "version is " + version);
          }
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
#Gson
private void parseJSONWithGSON(String jsonData) {
        Gson gson = new Gson();
        List<App> appList = gson.fromJson(jsonData, new TypeToken<List<App>>() {}.getType());
        for (App app : appList) {
            Log.d("MainActivity", "id is " + app.getId());
            Log.d("MainActivity", "name is " + app.getName());
            Log.d("MainActivity", "version is " + app.getVersion());
        }
    }

解析代码很简单,但是还要有APP类,这个类可以自动生成的:

package com.example.networktest;

public class App {

    private String id;

    private String name;

    private String version;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

}

相关文章

  • 五、Groovy语法(五)json、xml解析

    Groovy数据解析 一、json解析 请求网络数据并解析 二、xml解析 groovy解析xml数据 groov...

  • 网络整理(三)——数据解析

    数据解析: 1.JSON数据 重点:1.什么是JSON数据.{ } 数据解析: 2.JSON解析 重点:1.JSO...

  • 数据解析

    XML数据格式解析 pull解析方式 sax解析方式 JSON 数据格式解析 解析代码很简单,但是还要有APP类,...

  • Python练习 抓取AQI

    通过正则表达式解析数据 通过 BeautifulSoup 解析数据

  • 日志定位

    前后端 前端: 收集数据、数据校验、数据处理、数据解析、数据展现 后端: 数据解析、数据校验、数据处理 日志定位 ...

  • OC-数据解析XML(sax)(一)

    OC-数据解析XML(sax)(一) 为什么进行解析 用于公司内部数据交互,加密 解析的方法: (1)XML解析 ...

  • 2018-09-27/28日志定位+linux命令

    前后端 一、前端 手机数据 数据校验 数据处理 数据解析 数据展现 二、后端 数据解析 数据校验 数据处理 日志定...

  • 很好的 JSONModel

    JSON数据---JSONModel解析 JSON数据---JSONModel解析 JSONModel 初始化流程...

  • iOS进阶第四天(xml解析与json解析)

    解析的概念 解析:从事先规定好的格式中提取数据。 解析的前提:提前约定好格式,数据提供方按照格式提供数据,数据获取...

  • 网络

    NSURLConnection NSURLSession 普通网络请求 JSON数据解析 JSON序列化 数据解析...

网友评论

      本文标题:数据解析

      本文链接:https://www.haomeiwen.com/subject/octwzttx.html