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

android取得json数据

阅读更多
步骤一:页面返回JSON数据。

对本空间日志“php和AJAX的简单实现”的json.php代码做一些简单修改,代码如下:将代码 echo $_GET['jsoncallback'].'('.custom_json::encode($big_test).')';

改为 echo $_GET['jsoncallback'].custom_json::encode($big_test);

将文件另存为jsondata.php。

步骤二:编写Android代码。

1.编写Contact类,设置set和get方法。

package com.domain;

public class Contact {
private String name;
private int age;
private int sex;
private Double height;
private boolean is_human;
private String string;

public Contact() { }

public Contact(String name, int age, int sex, Double height,
   boolean is_human, String string) {
  this.name = name;
  this.age = age;
  this.sex = sex;
  this.height = height;
  this.is_human = is_human;
  this.string = string;
}
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public int getSex() {
return sex;
}

public void setSex(int sex) {
this.sex = sex;
}

public Double getHeight() {
return height;
}

public void setHeight(Double height) {
this.height = height;
}

public boolean isIs_human() {
return is_human;
}

public void setIs_human(boolean is_human) {
this.is_human = is_human;
}

public String getString() {
return string;
}

public void setString(String string) {
this.string = string;
}

}

2.编写输入流处理工具类StreamTools。

package com.shao.utils;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;

public class StreamTools {
public static byte[] readInputStream(InputStream instream) throws Exception{
  ByteArrayOutputStream outstream = new ByteArrayOutputStream();
  byte[] buf = new byte[1024];
  int len = 0 ;
  while(( len = instream.read(buf)) != -1)
  {
   outstream.write(buf, 0, len);
  }
  byte[] data = outstream.toByteArray();//网页的二进制数据
  outstream.close();
  instream.close();
  return data;
 
}

}

3.编写android布局文件main.xml。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView
android:id="@+id/name"
  android:layout_width="100dip"
    android:layout_height="wrap_content"
/>

<ListView
android:id="@+id/listview"
  android:layout_width="fill_parent"
    android:layout_height="wrap_content"
/>
</LinearLayout>

新建布局文件item.xml。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView
android:id="@+id/name"
  android:layout_width="100dip"
    android:layout_height="wrap_content"
/>
  <TextView
android:id="@+id/sex"
  android:layout_width="100dip"
    android:layout_height="wrap_content"
/>

  <TextView
android:id="@+id/age"
  android:layout_width="100dip"
    android:layout_height="wrap_content"
/>
  <TextView
android:id="@+id/height"
  android:layout_width="100dip"
    android:layout_height="wrap_content"
/>
  <TextView
android:id="@+id/is_human"
  android:layout_width="100dip"
    android:layout_height="wrap_content"
/>
  <TextView
android:id="@+id/string"
  android:layout_width="100dip"
    android:layout_height="wrap_content"
/>

</LinearLayout>

在string.xml添加如下一行:

<string name="error">net error</string>

4.编写业务实现类。

package com.shao;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

import com.domain.Contact;
import com.shao.utils.StreamTools;

public class MyService {

public static List<Contact> getLastContact() throws Throwable
{
  String path = "http://192.168.1.100:8080/WebContent/testjson/jsondata.php";
  List<Contact> contacts = new ArrayList<Contact>();
  URL url = new URL(path);
  HttpURLConnection conn = (HttpURLConnection)url.openConnection();
  conn.setConnectTimeout(5*1000);
  conn.setRequestMethod("GET");
  InputStream instream = conn.getInputStream();
  byte[] data = StreamTools.readInputStream(instream);
  String json = new String(data);
  JSONArray array = new JSONArray(json);
  for(int i=0;i<array.length();i++)
  {
   JSONObject item = array.getJSONObject(i);
   Contact contact = new Contact(item.getString("name"),item.getInt("age"),item.getInt("sex"),item.getDouble("height"),item.getBoolean("is_human"),item.getString("string"));
   contacts.add(contact);
  }
 
  return contacts;
}


}

5.编写主Activity类。

package com.shao;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.domain.Contact;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class TestXML extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        try {
   List<Contact> contacts = MyService.getLastContact();
   List<HashMap<String,Object>> data = new ArrayList<HashMap<String,Object>>();
  
   ListView  listview = (ListView)findViewById(R.id.listview);
   for(Contact contact : contacts)
   {
    HashMap<String,Object> item = new HashMap<String,Object>();
    item.put("name", contact.getName());
    item.put("sex",contact.getSex());
    item.put("age", contact.getAge());
    item.put("height", contact.getHeight());
    item.put("is_human", contact.isIs_human());
    item.put("string", contact.getString());
    data.add(item);
   
   }
  
  
  
  
  
   SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item,
     new String[]{"name","sex","age","height","is_human","string"},
     new int[]{R.id.name, R.id.sex, R.id.age, R.id.height, R.id.is_human, R.id.string});
  
   listview.setAdapter(adapter);
  
  
  
  } catch (Throwable e) {
   Log.e("shao",e.toString());
   Toast.makeText(this, R.string.error, 1).show();
  }
    }
}



6.开启访问网络功能 。

<uses-permission android:name="android.permission.INTERNET"/>

步骤三 测试。



















分享到:
评论

相关推荐

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

    在Android开发中,有时我们需要从服务器获取JSON数据并解析它以展示在应用中。这个"android 动态解析获取json数据的键值对"的项目就是针对这种情况的一个实例,主要展示了如何在Eclipse环境下,不预先创建JSON键值...

    Android_JSON数据解析

    在Android中,通常使用Volley库进行网络请求并获取JSON数据。首先添加依赖: ```groovy implementation 'com.android.volley:volley:1.2.1' ``` 创建Volley的RequestQueue,然后发送JsonRequest: ```java ...

    老罗android 解析json数据源码

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

    android之json和gson数据解析最完整的代码例子(包括各种样式的json数据)

    在Android应用中,我们通常从网络获取JSON数据,例如通过`HttpURLConnection`或`OkHttp`。获取到JSON字符串后,使用Gson解析成Java对象,然后展示在UI上。 六、总结 理解和掌握JSON以及Gson在Android中的使用是...

    Android中Json数据解析

    在Android中,我们经常从服务器获取JSON数据。通常,我们使用HttpURLConnection或OkHttp发送HTTP请求,然后在回调中处理响应的JSON字符串。例如,使用OkHttp: ```java OkHttpClient client = new OkHttpClient(); ...

    android城市json数据 按拼音排列/按省市区排列 附带使用方法

    在Android应用中,JSON数据常用于服务器与客户端之间的数据传输。在这个案例中,我们有两个JSON文件:`按拼音排列.json`和`按省市区排列.json`,它们分别存储了中国所有城市的拼音排序和按照省市区结构的数据。 1. ...

    【Android】JSON数据的读写方法

    JSON数据的读写是Android应用开发中的常见任务,尤其是在进行网络通信、数据存储或者数据序列化时。本篇文章将深入探讨Android环境下JSON数据的读写方法。 一、JSON数据格式 JSON数据格式基于JavaScript语法,但...

    android获取页面json格式数据并解析

    最近在整理自己写过的一些应用,发现这个也许对大家有帮助,android通过http页面获取json标准格式数据并且解析其中对象的全过程,其中包含android连接http页面方法,android解析json格式数据方法,json标准化格式...

    android通过json数据访问服务器

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

    android获取json中数据并绑定到listview(巨耗流量)(新手)

    本篇文章将深入探讨如何在Android中获取JSON数据,解析它,并将其绑定到ListView,同时关注如何优化流量使用。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和...

    Android JSON数据的封装及解析

    在Android应用中,通常我们会从网络获取JSON数据,如API接口响应。使用`HttpURLConnection`或第三方库如`Retrofit`、`Volley`发送HTTP请求后,将返回的JSON字符串通过`JsonUtil.fromJson`转换为对应的Java对象,然后...

    android解析Json数据

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

    android读取JSON数据在百度地图上画线

    项目中可能使用了其中一种方式获取JSON数据。 5. **折线覆盖物**: 百度地图API允许开发者在地图上添加自定义覆盖物,如标记、折线、多边形等。在本项目中,通过解析JSON获取的经纬度信息,创建`LatLng`对象,并使用...

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

    首先客户端从服务器端获取json数据 1、利用HttpUrlConnection 代码如下:/** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exception */ public static String readParse(String urlPath) ...

    android demo,json数据格式的案例的应用

    本示例是关于如何在Android应用中解析和使用JSON数据的一个实战演示。让我们深入探讨一下这个"android demo,json数据格式的案例的应用"。 首先,JSON是一种轻量级、易于人读写且易于机器解析的格式,它基于...

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

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

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

    本示例源码展示了如何利用Apache HttpClient库获取JSON数据,并将其解析后填充到ListView中。以下将详细介绍这一过程的关键步骤。 1. **HTTP请求**: - Apache HttpClient:在Android API 23之前,HttpClient是...

    android中JSON数据解析

    在实际项目中,我们通常会从网络请求中获取JSON数据。Android提供了`HttpURLConnection`和`OkHttp`等网络库来发送HTTP请求。假设我们使用`OkHttp`,可以这样获取并解析JSON: ```java OkHttpClient client = new ...

    android采用json解析数据的实例

    在Android中获取JSON数据通常需要通过HTTP请求。Android提供`HttpURLConnection`类,或者更推荐的`OkHttp`第三方库来实现。首先,创建一个HTTP请求到服务器,获取JSON响应。在实际应用中,可能需要处理网络权限,...

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

    在上述代码示例中,我们看到了如何结合Gson库进行Json数据的获取和解析。`HttpUtils`类负责从指定URL下载Json数据,通过`DefaultHttpClient`发送HTTP GET请求,然后获取响应并将其转换为字符串。`JsonUtils`类则使用...

Global site tag (gtag.js) - Google Analytics