Android  获取 json

MainActivity.java
package com.example.jsontest;

import java.io.IOException;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends Activity { public TextView myTextView = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.setContentView(R.layout.activity_main); this.myTextView=(TextView) findViewById(R.id.textView1); Button btn = (Button)this.findViewById(R.id.button1); btn.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { try{ new ReadHttpGet().execute("http://192.168.1.31/json.js"); }catch(Exception e){ // TODO Auto-generated catch block e.printStackTrace(); } } }); } 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; } @SuppressLint("NewApi")
@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 = new JSONArray(result.toString()); 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); } } }
activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.jsontest.MainActivity"
tools:ignore="MergeRootFrame" > <TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="174dp"
android:text="TextView" /> <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="get" /> </FrameLayout>

 

AndroidManifest.xml 加上网络权限: <uses-permission android:name="android.permission.INTERNET" />

Android 获取 json的更多相关文章

  1. Android Volley获取json格式的数据

    为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...

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

    使用.net创建一个ashx文件,并response.write  json格式 public void ProcessRequest(HttpContext context) { context.R ...

  3. android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下   首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的U ...

  4. Android从服务端获取json解析显示在客户端上面

    Android从服务端获取json解析显示在客户端上面 百度经验:jingyan.baidu.com 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Jso ...

  5. (转)android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下       首先客户端从服务器端获取json数据 1.利用HttpUrlConnection   复制代码 ...

  6. android客户端从服务器端获取json数据并解析的实现代码(重要)

    首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exc ...

  7. Android Volley 库通过网络获取 JSON 数据

    本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 环境 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpC ...

  8. android解析json

    android2.3提供的json解析类 android的json解析部分都在包org.json下,主要有以下几个类: JSONObject:可以看作是一个json对象 JSONStringer:js ...

  9. Android 解析JSON格式数据

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

随机推荐

  1. hibernate连接oracle数据库

    前言:以下所有的操作都是基于你已经成功安装了oracle数据库并且java的开发环境正常的情况下进行的. 如果没有完善请先配置基础环境. 第一步:配置需要的环境(下载并导入需要的包). 下载链接:ht ...

  2. HDU1596 find the safest road---(最短路径dijkstra,#变形#)

    http://acm.hdu.edu.cn/showproblem.php?pid=1596 分析: 题目要找一条安全度最高的路,安全度计算方法    Safe(P) = s(e1)*s(e2)…*s ...

  3. RPC-Thrift(三)

    TProtocol TProtocol定义了消息怎么进行序列化和反序列化的. TProtocol的类结构图如下: TBinaryProtocol:二进制编码格式: TCompactProtocol:高 ...

  4. GIT 使用 osc 在线托管

    今天一看,osc的代码托管自己开了2年了,csdn的代码托管也开了3年了,只是项目里有几个了了就是fork来的,自己的也没认真写,之前工作也用git,现在改用自己的git了. 所以就把Key-gen ...

  5. Django【进阶】信号

    -信号 Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者.   问题:如何对所有数据库添加操作进行日志记录? 问题:信 ...

  6. (转)自动安装VIM插件

    转自: http://xwz.me/wiki/doku.php?id=vim:plugins 我的插件列表 把下面GetLatestVimScripts.dat放进~/.vim/GetLatest/目 ...

  7. C/C++里的const(1)

    首先来看这样一段程序: #include<iostream> using namespace std; int main(){ char *s = "hello world&qu ...

  8. platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备【转】

    转自:http://blog.chinaunix.net/uid-25508271-id-2979412.html kernel_init中do_basic_setup()->driver_in ...

  9. textbox自动提示

    AutoCompleteStringCollection myCutomSource = new AutoCompleteStringCollection();            myCutomS ...

  10. PHPExcel 长数字串显示为科学计数 与 其他错误

    一.解决 PHPExcel 长数字串显示为科学计数 在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号 ...