`
yanghaoli
  • 浏览: 288528 次
社区版块
存档分类
最新评论

android通过httpClient请求获取JSON数据并且解析

 
阅读更多

使用.net创建一个ashx文件,并response.write  json格式

public void ProcessRequest(HttpContext context)

        {

            context.Response.ContentType = "text/plain";

            StringBuilder  jsonBuilder  = new StringBuilder();

            jsonBuilder.Append("{\"parent\":");

            jsonBuilder.Append("{\"children\":");

            jsonBuilder.Append("[");

            jsonBuilder.Append("{\"id\":\"11111\",\"title\":\"aaaaaaa\",\"name\":\"111111111aaaaaaaaaa\"},");

            jsonBuilder.Append("{\"id\":\"22222\",\"title\":\"bbbbbbb\",\"name\":\"222222222aaaaaaaaaa\"},");

            jsonBuilder.Append("{\"id\":\"33333\",\"title\":\"ccccccc\",\"name\":\"33333333aaaaaaaaaa\"}");

            jsonBuilder.Append("]}}");

 

            context.Response.Write(jsonBuilder.ToString());

        }

android代码

public class HttpClient_Get_Activity extends Activity {

   public TextView myTextView = null;

   @Override

   protected void onCreate(Bundle savedInstanceState) {

      // TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.httpget_httpclient_activity);

     

      Button btn = (Button)this.findViewById(R.id.button1);

      btn.setOnClickListener(new Button.OnClickListener(){

 

         @Override

         public void onClick(View v) {

              new ReadHttpGet().execute("http://190.160.10.79:7890/handler1.ashx");

         }

        

      });

   }

    class ReadHttpGet extends AsyncTask<Object, Object, Object>

    {

 

      @Override

      protected Object doInBackground(Object... params) {

         // TODO Auto-generated method stub

        

         HttpGet httpRequest = new HttpGet(params[0].toString());

         try

         {

            HttpClient httpClient = new DefaultHttpClient();

            HttpResponse httpResponse = httpClient.execute(httpRequest);

           

            if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK)

            {

                String strResult = EntityUtils.toString(httpResponse.getEntity());

                return strResult;

            }

            else

            {

                return "请求出错";

            }

         }

         catch(ClientProtocolException e)

         {

           

         }

         catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

         }

        

         return null;

      }

 

      @Override

      protected void onCancelled(Object result) {

         // TODO Auto-generated method stub

         super.onCancelled(result);

      }

 

      @Override

      protected void onPostExecute(Object result) {

         // TODO Auto-generated method stub

         super.onPostExecute(result);

        

         try

         {

            //创建一个JSON对象

            JSONObject jsonObject = new JSONObject(result.toString()).getJSONObject("parent");

            //获取某个对象的JSON数组

            JSONArray jsonArray = jsonObject.getJSONArray("children");

           

            StringBuilder builder = new StringBuilder();

           

            for(int i = 0; i<jsonArray.length(); i++)

            {

                //新建一个JSON对象,该对象是某个数组里的其中一个对象

                JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i);

               

                builder.append(jsonObject2.getString("id")); //获取数据

                builder.append(jsonObject2.getString("title"));

                builder.append(jsonObject2.getString("name"));

            }

            myTextView.setText(builder.toString());

         }

         catch (JSONException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

         }

        

      }

 

      @Override

      protected void onPreExecute() {

         // TODO Auto-generated method stub

         //super.onPreExecute();

         Toast.makeText(getApplicationContext(), "开始HTTP GET请求", Toast.LENGTH_LONG).show();

      }

 

      @Override

      protected void onProgressUpdate(Object... values) {

         // TODO Auto-generated method stub

         super.onProgressUpdate(values);

      }

      

    }

}

 android中json的浅薄理解

JSONObject 表示形式 {"key" : "value"}

JSONArray 表示形式  [{"key" : "value"},{"key" : "value"},{"key" : "value"}],JSONArray里面包含多个JSONObject

访问时通过 JSONObject对象去访问,使用 jsonObject.getXXX("key")得到相应的值

一般解析JSON都使用这两个。

2
1
分享到:
评论

相关推荐

    Android高级应用源码-通过httpclient获取到JSON数据,展示到ListView.zip

    这个源码示例"Android高级应用源码-通过httpclient获取到JSON数据,展示到ListView.zip"正是关于这个主题的,它演示了如何使用Apache的HttpClient库从服务器获取JSON数据,并解析这些数据以填充一个ListView。...

    Android例子源码httpclient获取到JSON数据并展示到ListView

    - JSON解析库:在Android中,通常使用Google的Gson库或org.json库来解析JSON。在这个例子中,假设我们使用org.json库,首先需要将HttpEntity的内容转化为String,然后使用`JSONObject`或`JSONArray`解析JSON数据。...

    Android客户端向服务器端请求数据的两种方式:HTTPURLConnection、HTTPClient,以json数据的解析

    Android客户端向服务器端请求数据的两种主要方式:HTTPURLConnection、HTTPClient;内含客户端与服务器端Demo(带有详细注释),原生方式解析json数据,希望大家多多批评指教!!

    Android代码-通过httpclient获取到JSON数据展示到ListView.zip

    综上所述,这个压缩包的示例项目涵盖了Android网络编程、JSON解析、ListView数据绑定等多个重要知识点,对于学习Android应用开发尤其是网络数据展示部分非常有帮助。通过理解和实践这个项目,开发者可以提升处理网络...

    通过httpclient获取到JSON数据,展示到ListView

    在Android开发中,将通过HTTPClient获取到的JSON数据展示到ListView是一种常见的需求。这个过程涉及到网络请求、JSON解析以及UI绑定等多个环节。下面将详细解释这些知识点。 首先,`HTTPClient`是Apache HttpClient...

    Android HttpClient与Json解析

    总结来说,这个Demo涵盖了Android中获取网络数据的关键技术:使用HttpClient发起HTTP请求,通过JSON解析获取数据,以及使用AsyncTask实现异步加载以避免阻塞主线程。这些技能对于任何需要与服务器交互的Android应用...

    android httpclient 访问服务器 获取json数据

    这就是使用Android中的HTTPClient库访问服务器并获取JSON数据的基本步骤。注意,Android现在推荐使用更现代的网络库,如OkHttp或Retrofit,因为它们有更好的性能和更丰富的功能。然而,对于学习和理解基础网络通信,...

    利用HttpClient获取数据并用Gson解析Json数据

    本教程将专注于使用Apache HttpClient库获取网络数据,然后使用Google的Gson库解析JSON格式的数据。这是一个基础但重要的技能,对于任何想要与服务器进行交互的开发者来说都是必备的。 首先,我们需要了解`...

    Android高级应用源码-通过httpclient获取到JSON数据,展示到ListView.rar

    9. **错误处理**:在获取和解析数据过程中,可能出现网络错误、JSON解析错误等,源码中应包含适当的异常处理代码,提供错误反馈或重试机制。 这个示例代码对于理解和学习Android网络通信、JSON解析以及ListView的...

    android客户端从服务器端获取json数据并解析

    在Android开发中,从服务器端获取JSON数据并进行解析是一项常见的任务,这涉及到网络通信、数据格式处理以及数据解析等多个方面。以下是对这一过程的详细解释: ### 一、从服务器端获取JSON数据 #### 1. 使用...

    Android HTTP网络请求获取JSON数据

    在Android应用开发中,HTTP网络请求是连接服务器并获取数据的一种常见方式,特别是在现代移动应用中,通过HTTP接口获取JSON格式的数据尤为普遍。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,...

    andriod通过http请求json数据项目例子

    在Android开发中,与服务器进行数据交互是常见的需求,通常我们使用HTTP协议来发送请求,获取JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...

    Android请求服务器和解析数据

    Android请求服务器和解析数据,包含8个实例代码:android_json,android访问网络返回的XML数据并且进行解析,httpclient获取到JSON数据并展示到ListView,Json数据解析服务器端加客户端代码等等。

    android json数据下载与解析demo

    这个“android json数据下载与解析demo”涵盖了Android开发中的多个重要概念,包括网络请求、JSON解析、异步操作以及数据展示。通过学习和实践这个示例,开发者可以更好地理解和掌握Android应用中与网络交互和数据...

    android中post获取json

    本文将基于提供的内容,详细介绍如何在Android中通过POST请求获取JSON数据,并对其进行解析。 #### 一、概述 在Android应用开发中,通常需要与后端服务器进行通信来获取或发送数据。这些数据往往以JSON...

    listview中json数据展示

    "listview中json数据展示"这个主题涉及到如何将从服务器通过HTTP请求获取的JSON数据解析并显示在ListView中。以下是对这个主题的详细阐述: 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的...

    android通过json数据访问服务器

    总结来说,本示例展示了在Android中如何通过JSON数据访问服务器,利用多线程提高性能,以及如何使用自定义的`JsonUtil`工具类进行JSON解析。这不仅对初学者有很好的学习价值,也为网络编程经验较少的开发者提供了一...

    安卓listview相关相关-android客户端请求.netWeb服务端请求后的数据json解析展示在listview上.rar

    本示例项目"安卓listview相关相关-android客户端请求.netWeb服务端请求后的数据json解析展示在listview上.rar"聚焦于如何从.NET Web服务获取JSON数据,并在Android客户端的ListView中进行解析和展示。以下是关于这一...

    Android利用Json来进行网络数据传输

    在Android中,可以使用`HttpURLConnection`或者`HttpClient`(虽然`HttpClient`在新版本的Android SDK中已被弃用,但在老版本中仍被广泛使用)来发送HTTP请求并获取响应。 在给定的例子中,`HttpUtils`类展示了如何...

Global site tag (gtag.js) - Google Analytics