`
gmxstar
  • 浏览: 17941 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android解析JSON数据

阅读更多

json数据格式解析我自己分为两种;

一种是普通的,一种是带有数组形式的;

普通形式的:
服务器端返回的json数据格式如下:

{"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}}

分析代码如下:

// TODO 状态处理 500 200
                int res = 0;
                res = httpClient.execute(httpPost).getStatusLine().getStatusCode();
                if (res == 200) {
                    /*
                     * 当返回码为200时,做处理
                     * 得到服务器端返回json数据,并做处理
                     * */
                    HttpResponse httpResponse = httpClient.execute(httpPost);
                    StringBuilder builder = new StringBuilder();
                    BufferedReader bufferedReader2 = new BufferedReader(
                            new InputStreamReader(httpResponse.getEntity().getContent()));
                    String str2 = "";
                    for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2
                            .readLine()) {
                        builder.append(s);
                    }
                    Log.i("cat", ">>>>>>" + builder.toString());

JSONObject jsonObject = new JSONObject(builder.toString())
                        .getJSONObject("userbean");

                String Uid;
                String Showname;
                String Avtar;
                String State;

                Uid = jsonObject.getString("Uid");
                Showname = jsonObject.getString("Showname");
                Avtar = jsonObject.getString("Avtar");
                State = jsonObject.getString("State");
带数组形式的:
服务器端返回的数据格式为:

{"calendar":
    {"calendarlist":
            [
            {"calendar_id":"1705","title":"(\u4eb2\u5b50)ddssd","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288927800","endshowtime":"1288931400","allDay":false},
            {"calendar_id":"1706","title":"(\u65c5\u884c)","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288933200","endshowtime":"1288936800","allDay":false}
            ]
    }
}

分析代码如下:

// TODO 状态处理 500 200
                int res = 0;
                res = httpClient.execute(httpPost).getStatusLine().getStatusCode();
                if (res == 200) {
                    /*
                     * 当返回码为200时,做处理
                     * 得到服务器端返回json数据,并做处理
                     * */
                    HttpResponse httpResponse = httpClient.execute(httpPost);
                    StringBuilder builder = new StringBuilder();
                    BufferedReader bufferedReader2 = new BufferedReader(
                            new InputStreamReader(httpResponse.getEntity().getContent()));
                    String str2 = "";
                    for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2
                            .readLine()) {
                        builder.append(s);
                    }
                    Log.i("cat", ">>>>>>" + builder.toString());
                    /**
                     * 这里需要分析服务器回传的json格式数据,
                     */
                    JSONObject jsonObject = new JSONObject(builder.toString())
                            .getJSONObject("calendar");
                    JSONArray jsonArray = jsonObject.getJSONArray("calendarlist");
                    for(int i=0;i<jsonArray.length();i++){
                        JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i);
                        CalendarInfo calendarInfo = new CalendarInfo();
                        calendarInfo.setCalendar_id(jsonObject2.getString("calendar_id"));
                        calendarInfo.setTitle(jsonObject2.getString("title"));
                        calendarInfo.setCategory_name(jsonObject2.getString("category_name"));
                        calendarInfo.setShowtime(jsonObject2.getString("showtime"));
                        calendarInfo.setEndtime(jsonObject2.getString("endshowtime"));
                        calendarInfo.setAllDay(jsonObject2.getBoolean("allDay"));
                        calendarInfos.add(calendarInfo);
                    }

总结,普通形式的只需用JSONObject ,带数组形式的需要使用JSONArray 将其变成一个list。

分享到:
评论
1 楼 leon1509 2012-02-24  
你这明显就是用的JSON-lib开源组件嘛!

相关推荐

    老罗android 解析json数据源码

    本教程聚焦于老罗讲解的Android解析JSON数据的源码分析,这对于深入理解JSON处理以及优化应用程序性能至关重要。 首先,我们需要了解JSON的基本结构。JSON是一种基于键值对的格式,数据以键值对的形式存储,如{"key...

    Android解析json数据

    总结,Android解析JSON数据是常见的任务,开发者可以选择不同的库和方法来实现。理解JSON的结构,熟练使用解析库,以及妥善处理网络请求和异步操作,是提升Android开发能力的关键步骤。通过阅读给定的博客文章,可以...

    Android解析Json数据的PPT和源码

    这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...

    Android解析JSON数据

    以上就是Android解析JSON数据的一些常见方法。选择哪种方法主要取决于项目需求和个人偏好。在实际开发中,通常会结合使用这些库和工具,以实现高效且灵活的数据处理。记住,无论选择哪种方式,确保在处理网络数据时...

    android解析Json数据

    本篇将深入探讨如何在Android平台上使用org.json库解析JSON数据。 一、JSON基础知识 1. JSON数据结构:主要包括对象(Object)和数组(Array)。对象由键值对组成,用花括号{}包围;数组是一组有序的值,用方括号[]...

    android解析json数据)第一集JsonProject.zip

    在“android解析json数据)第一集JsonProject.zip”这个压缩包中,我们很可能会找到一个实战项目,展示了如何在Android应用中处理JSON数据。通过这个项目,我们可以学习到以下关键知识点: 1. JSON基本结构:JSON...

    android 解析json数据

    2. Android解析JSON库: Android提供了两个内置库来处理JSON数据:`org.json`和`com.google.gson`。`org.json`库适用于简单的JSON操作,而`com.google.gson`库功能更强大,支持复杂对象的序列化和反序列化。 3. `...

    老罗android解析json数据源代码和PPT

    在这个“老罗android解析json数据源代码和PPT”资料中,我们可以学习到如何在Android环境下处理JSON数据,以及如何通过源代码实现这一过程。 首先,理解JSON的基本结构至关重要。JSON由键值对组成,键是字符串,值...

    基于android解析json数据天气app

    以上是基于Android解析JSON数据天气APP的主要技术点,通过熟练掌握这些知识,可以构建出一款功能完备、用户体验良好的天气应用。在实际开发中,还要注意代码规范、性能优化以及遵循Android的最佳实践。

    Android_JSON数据解析

    本篇将详细讲解如何在Android应用中解析JSON数据,主要涉及以下几个方面: 1. JSON基本结构 JSON由两种基本结构构成:对象(Object)和数组(Array)。对象是以花括号 `{}` 包围的键值对集合,键用双引号括起,如`...

    android解析JSON数据详解借鉴.pdf

    总的来说,Android开发中解析JSON数据是一项基础且重要的任务,理解并熟练运用`JSONObject`和`JSONArray`类是处理JSON数据的关键。在实际开发中,还需要注意错误处理和数据验证,确保数据的正确性和安全性。

    android 动态解析获取json数据的键值对

    总之,这个项目的核心是动态解析JSON数据,避免为每个JSON键值创建实体类,而是直接解析并显示在列表中。这展示了Android开发中的灵活性,以及如何有效地处理JSON数据,对于初学者和有经验的开发者都是一个有价值的...

    老罗Android视频开发教程 android解析Json数据代码

    老罗的Android视频开发教程深入浅出地讲解了如何在Android环境中解析JSON数据,这对于开发者来说是至关重要的技能。下面我们将详细探讨这个主题。 首先,我们来了解JSON的基本结构。JSON基于JavaScript的一个子集,...

    android解析JSON数据详解.pdf

    JSON数据在Android中的应用非常广泛,例如在网络请求中接收和发送数据,存储配置信息,或者在不同组件之间传递复杂数据。理解并熟练使用JSON解析和序列化是每个Android开发者必备的技能之一。在处理过程中,需要注意...

    Android解析json数据示例代码(三种方式)

    "Android解析json数据示例代码(三种方式)" 本篇文章主要介绍了Android平台上解析JSON数据的三种方式,分别是Android自带解析、Gson解析和FastJson解析。 一、Android自带解析 在Android平台上,自带的JSON解析...

    Android中Json数据解析

    在Android中,我们通常使用Google提供的Gson库或者org.json库来解析JSON数据。Gson库能够直接将JSON字符串转化为Java对象,反之亦然,非常方便。而org.json库提供了JSONObject和JSONArray类,可以手动解析和构建JSON...

    Android:实验项目:解析JSON数据实现天气预报显示

    使用解析JSON文件获取天气预报信息,并将不同城市的天气信息显示在主界面中,应用程序运行时界面如图1所示。单击其他城市按钮时,将显示相应城市对应的天气信息,如图2所示4.在模块对应的包名下创建JSON数据对应的...

    Android 解析json_dome.rar

    总结来说,Android解析JSON数据主要涉及选择合适的库(如Gson或org.json),根据数据结构解析JSON字符串,以及将解析后的数据应用于应用程序中。理解这些基本概念和操作对于Android开发者来说至关重要,因为JSON已经...

    Android应用源码之Android 解析json_dome.zip

    在Android中,我们通常使用`org.json`库或者Gson库来解析JSON数据。`org.json`库提供了一些基本的类如`JSONObject`和`JSONArray`,用于解析JSON对象和数组。 1. **使用org.json解析JSON对象:** 当接收到一个JSON...

    Android Studio解析JSON对象

    本主题聚焦于“Android Studio解析JSON对象”,这是一个非常关键且实用的技能,因为JSON作为一种轻量级的数据交换格式,广泛应用于网络通信和数据存储。JSON对象可以方便地表示各种复杂的数据结构,包括数组、键值...

Global site tag (gtag.js) - Google Analytics