`

JSONObject 解析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。

from :http://blog.csdn.net/cwx01perfect/article/details/7559832

分享到:
评论

相关推荐

    使用JSONObject解析json数据

    总的来说,`JSONObject`是Java中处理JSON数据的重要工具,无论是解析从服务器接收的数据还是构建要发送到服务器的数据,都离不开它的支持。了解并熟练掌握`JSONObject`的使用,对于进行Web开发或API接口设计至关重要...

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

    在这个例子中,我们使用`JSONObject.Parse`方法解析JSON字符串,并通过键来获取对应的值。注意类型转换,因为`JSONObject`中的值默认为`dynamic`类型,我们需要显式转换为实际类型。 此外,`com.force.json`还支持...

    JSONObject java解析json需要的jar包和依赖包

    2. **使用JSONObject解析JSON字符串** `JSONObject`类提供了一个构造函数,可以将JSON格式的字符串转换为`JSONObject`对象。例如: ```java import org.json.JSONObject; public class JsonExample { public ...

    kettle解析json串

    本文将详细介绍使用Java库解析JSON的基本方法以及如何在Kettle环境中实现这一过程。 ### Kettle与JSON解析概述 #### 1. **Kettle简介** - Kettle(Pentaho Data Integration,简称PDI)是一款开源的数据集成工具...

    C#像java一样优雅的解析JSON数据

    C#的一个解析JSON的工具类,像java一样优雅的解析JSON数据,包含有JSONObject和JSONArray对象。 JSONObject json = new JSONObject(); json.Put("sex", "男"); json.Put("age", 123); json.Put("name", "张三"); ...

    java 解析 json文件 java 解析 json文件

    总结来说,Java中解析JSON文件有多种方法,可以根据项目需求选择合适的库。Jackson和Gson通常更受开发者欢迎,因为它们提供了方便的数据绑定功能。无论选择哪种方式,都需要确保正确地映射JSON结构到Java对象,以便...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    解析JSON字符串 当你从服务器获取或从文件读取到一个JSON字符串时,可以使用`JSONObject`将其解析为可操作的对象。以下是如何进行解析的示例: ```java import net.sf.json.JSONObject; String jsonString = "{\...

    Android中gson、jsonobject解析JSON的方法详解

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换...

    MFC使用json11解析JSON

    或者,如果你需要将C++对象转换回JSON字符串,可以使用`Json::dump`方法: ```cpp json11::Json userObject; // 设置userObject的属性... std::string jsonString = userObject.dump(); ``` 在MFC应用程序中,你...

    Powerbuilder解析json半成品

    3. **解析JSON数据**:使用`jsonObject.Parse(jsonString)`方法,其中`jsonString`是包含JSON数据的字符串。解析成功后,你可以通过`jsonObject.Get()`或`jsonObject.GetArray()`方法访问键值对或数组。 4. **处理...

    用jquery解析JSON数据的方法

    用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里...

    使用JSONObject生成和解析json的方法

    本文将详细介绍如何使用JSONObject来生成和解析JSON数据。 首先,我们需要了解JSON数据格式的基本组成。JSON数据主要由四种结构组成,分别是对象(Object)、数组(Array)、值(Value)和键(Key)。在JSON中,...

    java解析Json的两种方式

    本文将探讨在Java中解析JSON的两种主要方法:使用JSON库和利用Java内置的JSON处理API。 首先,我们来看使用JSON库的方式。在提供的压缩包文件中,包含了一些常见的Java JSON处理库,如json-lib-2.3-jdk15.jar。这个...

    Android Studio解析JSON对象

    在Android Studio中解析JSON,通常使用的是`org.json`库,它包含两个主要类:`JSONObject`和`JSONArray`。`JSONObject`用于处理键值对,而`JSONArray`则处理有序的元素列表。 解析JSON对象的步骤如下: 1. **导...

    PB调用http apiPB解析json

    3. **PB解析JSON**:PowerBuilder提供了一些内置或第三方库来解析JSON数据,例如使用pbjson、jsonobject等类库。解析JSON数据时,首先需要将响应内容转换为字符串,然后使用JSON解析器将字符串转换为数据结构,如数...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    `JSONObject`可以从一个Java对象创建,也可以解析为一个JSON字符串。例如,我们有一个简单的Java对象: ```java public class User { private String name; private int age; // getters and setters } ``` 要...

    java解析json完整案例

    Java解析JSON是一个常见的任务,特别是在开发Web服务或者与API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们可以使用多种库...

    Java使用JSONObject操作json实例解析

    `json-lib`库提供了`JSONObject`类,用于创建、修改和解析JSON数据。首先,要在项目中引入`json-lib`依赖,可以在Maven的`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;net.sf.json-lib&lt;/groupId&gt; ...

    Gson解析json数据

    在本文中,我们将深入探讨如何使用Gson解析JSON数据,包括处理简单JSON和复杂的JSON结构。 首先,我们要了解JSON的基本概念。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...

Global site tag (gtag.js) - Google Analytics