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

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。

分享到:
评论

相关推荐

    PB Json解析库

    PB Json解析库是一种用于处理协议缓冲区(Protocol Buffers,简称PB)与JSON之间相互转换的工具。在软件开发中,尤其是涉及到数据交换时,PB和JSON都扮演着重要的角色。PB是Google推出的一种高效的数据序列化协议,...

    Android 安卓 json解析

    我们将涵盖两种解析方式:本地JSON解析和在线JSON解析。 ### 1. JSON基础知识 JSON是一种文本格式,基于JavaScript语法,但独立于语言。它以键值对的形式存储数据,如`"key": "value"`。数组可以通过方括号`[]`表示...

    JSON 解析 示例代码

    总的来说,理解和掌握JSON解析是现代Web开发的基本技能之一。无论你是前端开发者还是后端开发者,都需要能够有效地读取、解析和生成JSON数据。通过学习和实践,你可以熟练地利用JSON这一强大的工具进行数据交换和...

    自己实现一个简单的JSON解析器

    本着探究 JSON 原理的目的,我将会在这DEMO中实现了一个简单的JSON解析器。由于 JSON 本身比较简单,解析起来也并不复杂。所以如果大家感兴趣的话,在看完本DEMO后,不妨自己动手实现一个 JSON 解析器。

    鬼脸JSON解析小工具forMac

    "鬼脸JSON解析小工具forMac"正是这样一款专为MAC用户设计的实用工具,它的特点在于其独特的鬼脸logo,使得软件在众多工具中具有较高的辨识度。 该工具的主要功能包括: 1. **实时解析**:用户可以直接将包含JSON...

    易语言页面订单json解析

    3. **JSON解析**:易语言提供了JSON解析的库或模块,允许我们解析JSON字符串为易语言的数据结构,如数组或字典。解析过程中,我们需要识别并提取出订单的关键信息,如订单ID、客户信息、商品详情等。 4. **将订单...

    Unity能够在WebGL包使用的json解析.dll

    JSON解析.dll是Unity中用于处理JSON数据的库,它允许开发者将JSON字符串转化为C#对象或者将C#对象转化为JSON字符串。 在Unity与WebGL的结合使用中,由于WebGL的目标是浏览器环境,因此存在一些特定的限制。例如,...

    易语言Json解析模块

    易语言、易Json解析模块、水淼Json 易语言水淼JSON解析模块源码自主解析JSON数据类型,使用树来直观清晰显示出所有结构,辅助程序员快速定位JSON节点提高开发效率。

    C语言精简JSON解析程序,可用于单片机等资源稀缺硬件

    本项目提供的是一款针对C语言的精简JSON解析程序,专为资源有限的硬件环境如单片机设计。 1. **C语言基础** C语言是底层编程的常用工具,具有高效、灵活和资源管理精细等特点,适合于开发对内存和计算能力要求严格...

    JSONObject解析json,C# asp.net JSON解析 com.force.json

    `com.force.json`是一个针对.NET平台的高性能JSON库,由Salesforce公司开发,它提供了快速且内存效率高的JSON解析和生成功能。这个库适用于那些需要高效处理大量JSON数据的应用场景。 首先,我们需要了解JSON的基本...

    JSON解析工具.exe

    适用于json解析,美观直观的观看数据

    json-c 一个用于c语言的json解析库,很强大

    `json-c`就是这样一个专门用于C语言的JSON解析库,它提供了对JSON数据的读取、创建、修改和序列化等功能,使得C程序员可以方便地与JSON格式进行交互。 `json-c`库的核心特性包括: 1. **解析和生成JSON**:`json-c...

    最简单最高效的Json解析

    在Python中,Python的标准库`json`模块提供了非常便捷的JSON解析和序列化功能。要解析一个JSON字符串,我们可以使用`json.loads()`函数。例如: ```python import json json_string = '{"name": "John", "age": 30...

    JSON解析最新版20151017超简JSON效验解析器

    不过,需要注意的是,由于这是2015年的版本,可能不包含最新的JSON解析技术和安全更新,对于最新的JSON规范支持可能存在局限,而且在当前的软件环境下运行可能不稳定或者存在兼容性问题。建议使用最新版本的JSON解析...

    Json解析Gson解析

    本篇文章将深入探讨JSON解析以及Gson库的使用方法。 一、JSON解析基础 JSON是一种独立于语言的数据表示格式,其结构清晰,易于人阅读和编写,同时也容易让机器解析和生成。JSON主要由键值对(key-value pairs)...

    Jason鬼脸mac版-最好用的json解析工具-没有之一

    "Jason鬼脸mac版"就是这样一个专为Mac用户设计的顶级JSON解析工具,它以其强大的功能和友好的用户界面赢得了“最好用”的美誉。 Jason鬼脸(Jason2.app)主要特点包括: 1. **直观展示**:Jason鬼脸提供了清晰的树...

    最全的 json解析JAR包

    本篇将详细介绍JSON解析相关的知识点,并针对"最全的json解析JAR包"进行解析。 1. JSON基本结构: JSON基于JavaScript的一个子集,主要由对象(Object)和数组(Array)两种数据结构组成。对象是键值对的集合,用...

    C#中Json 解析类库,使用dictionary 解析未知字段的对象

    在C#中,当你面对未知结构的JSON数据,即不能预先定义强类型对象时,可以使用`Dictionary, object&gt;`作为载体,将JSON解析为键值对的形式。 以下是使用Json.NET库解析JSON的基本步骤: 1. 引入库:确保项目引用了...

    易语言json解析模块源码【2.0】

    易语言JSON解析模块2.0源码例程程序结合易语言扩展界面支持库和应用接口支持库,调用API函数实现JSON解析、生成、编辑。点评:易语言JSON解析模块2.0源码通过封装JSON类形成稳定强大的json处理核心。资源作者:。...

    VB6_Json解析代码

    在VB6中,由于缺乏内置的JSON支持,开发者通常会寻找第三方组件,如JSONConverter.bas模块,这是一个非常流行且广泛使用的VB6 JSON解析器。这个模块提供了将VB6的数据结构转换为JSON字符串,以及将JSON文本解析为VB6...

Global site tag (gtag.js) - Google Analytics