zoukankan      html  css  js  c++  java
  • Android 解析JSON格式数据

    比起XML,JSON主要优势在于它的体积更小,在网络上传输的时候可以更省流量。但缺点在于,它的语义性较差,显示不如XML直观。

    JSON格式 :  { "name_A" : "value_A","name_B" : "value_B" }

    表示:name_A = value_A;  name_B = value_B;

    我将对下面的JSON数据进行解析:

    [{"id":"5","version":"5.5","name":"愤怒的小鸟"},
    {"id":"6","version":"7.0","name":"神庙逃亡"},
    {"id":"7","version":"3.5","name":"保卫萝卜"}]
    

    代码如下:

        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("woider", "id is " + id); Log.d("woider", "name is " + name); Log.d("woider", "version is " + version); } } catch (Exception e) { e.printStackTrace(); } }

    首先获取JSON元素数组:JSONArray jsonArray = new JSONArray(jsonData);

    其次循环获取每个元素:JSONObject jsonObject = jsonArray.getJSONObject(index);

    每次循环保存名称相对应的值:String name = jsonObject.getString("name");

    ======================使用GSON========================

    GSON是谷歌提供的一个API,它主要就是可以将一段JSON格式的字符串自动映射成一个对象,从而不需要手动编码进行解析。

    但是GSON并没有被添加到Android官方的API中,因此如果需要使用这个功能的话,则必须在项目中添加一个GSON的Jar包。

    首先要建立一个类容纳JSON中的数据,然后实例化 Gson 对象,并通过 fromJson() 方法获取JSON对象集合。

        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("woider", "id is " + app.getId());
                Log.d("woider", "name is " + app.getName());
                Log.d("woider", "version is " + app.getVersion());
            }
        }

    最后,补上运行截图:

  • 相关阅读:
    使用 UDDI 的 Web 服务描述和发现(第一部分) 沧海
    软件配置管理(SCM) 沧海
    什么是WebService 沧海
    WSDL概述 沧海
    分析:对QQ、ICQ发展前景的判断 沧海
    软件巨头的高校人才之争 沧海
    读“我为什么不要应届毕业生” 沧海
    IT监控工作如何引入热门的ITIL? 沧海
    IT项目管理向沟通要效率 沧海
    闫成印:证券信息化未来需求分析 沧海
  • 原文地址:https://www.cnblogs.com/woider/p/5324722.html
Copyright © 2011-2022 走看看