- 浏览: 22004 次
- 性别:
- 来自: 北京
文章分类
最新评论
步骤一:页面返回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"/>
步骤三 测试。
对本空间日志“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 win8效果实现进阶(一)
2013-10-24 23:30 919最近在研究android 版本的win8效果,只牵强实现了一部 ... -
AsyncImageLoader
2013-07-31 21:37 0非原著,节选自http://code.google.com/p ... -
ubuntu 12.04驱动开发环境配置
2013-05-04 00:46 21791.在终端运行#uname-r查看现有的内核的版本,本人ubu ... -
android取得收藏夹的联系人
2012-06-06 18:43 1806摘自:http://blog.csdn.net/qiaonin ... -
Android 删除手机联系人,添加手机联系人,更新手机联系人信息
2012-05-21 21:25 3007添加联系人 private void addContact ... -
android源码下载以及编译
2012-02-25 23:23 1794redhat linux 一、下载并编译安装git wge ... -
android底层开发
2012-02-24 16:31 1041·Android开发:如何实现TCP和UDP传输 http:/ ... -
android adb shell常用命令
2012-02-20 18:20 6899最进学到了adb工具的一些小技巧,记录在此。操作系统是wind ...
相关推荐
在Android开发中,有时我们需要从服务器获取JSON数据并解析它以展示在应用中。这个"android 动态解析获取json数据的键值对"的项目就是针对这种情况的一个实例,主要展示了如何在Eclipse环境下,不预先创建JSON键值...
在Android中,通常使用Volley库进行网络请求并获取JSON数据。首先添加依赖: ```groovy implementation 'com.android.volley:volley:1.2.1' ``` 创建Volley的RequestQueue,然后发送JsonRequest: ```java ...
本教程聚焦于老罗讲解的Android解析JSON数据的源码分析,这对于深入理解JSON处理以及优化应用程序性能至关重要。 首先,我们需要了解JSON的基本结构。JSON是一种基于键值对的格式,数据以键值对的形式存储,如{"key...
在Android应用中,我们通常从网络获取JSON数据,例如通过`HttpURLConnection`或`OkHttp`。获取到JSON字符串后,使用Gson解析成Java对象,然后展示在UI上。 六、总结 理解和掌握JSON以及Gson在Android中的使用是...
在Android中,我们经常从服务器获取JSON数据。通常,我们使用HttpURLConnection或OkHttp发送HTTP请求,然后在回调中处理响应的JSON字符串。例如,使用OkHttp: ```java OkHttpClient client = new OkHttpClient(); ...
在Android应用中,JSON数据常用于服务器与客户端之间的数据传输。在这个案例中,我们有两个JSON文件:`按拼音排列.json`和`按省市区排列.json`,它们分别存储了中国所有城市的拼音排序和按照省市区结构的数据。 1. ...
JSON数据的读写是Android应用开发中的常见任务,尤其是在进行网络通信、数据存储或者数据序列化时。本篇文章将深入探讨Android环境下JSON数据的读写方法。 一、JSON数据格式 JSON数据格式基于JavaScript语法,但...
最近在整理自己写过的一些应用,发现这个也许对大家有帮助,android通过http页面获取json标准格式数据并且解析其中对象的全过程,其中包含android连接http页面方法,android解析json格式数据方法,json标准化格式...
总结来说,本示例展示了在Android中如何通过JSON数据访问服务器,利用多线程提高性能,以及如何使用自定义的`JsonUtil`工具类进行JSON解析。这不仅对初学者有很好的学习价值,也为网络编程经验较少的开发者提供了一...
本篇文章将深入探讨如何在Android中获取JSON数据,解析它,并将其绑定到ListView,同时关注如何优化流量使用。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和...
在Android应用中,通常我们会从网络获取JSON数据,如API接口响应。使用`HttpURLConnection`或第三方库如`Retrofit`、`Volley`发送HTTP请求后,将返回的JSON字符串通过`JsonUtil.fromJson`转换为对应的Java对象,然后...
本篇将深入探讨如何在Android平台上使用org.json库解析JSON数据。 一、JSON基础知识 1. JSON数据结构:主要包括对象(Object)和数组(Array)。对象由键值对组成,用花括号{}包围;数组是一组有序的值,用方括号[]...
项目中可能使用了其中一种方式获取JSON数据。 5. **折线覆盖物**: 百度地图API允许开发者在地图上添加自定义覆盖物,如标记、折线、多边形等。在本项目中,通过解析JSON获取的经纬度信息,创建`LatLng`对象,并使用...
首先客户端从服务器端获取json数据 1、利用HttpUrlConnection 代码如下:/** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exception */ public static String readParse(String urlPath) ...
本示例是关于如何在Android应用中解析和使用JSON数据的一个实战演示。让我们深入探讨一下这个"android demo,json数据格式的案例的应用"。 首先,JSON是一种轻量级、易于人读写且易于机器解析的格式,它基于...
这就是使用Android中的HTTPClient库访问服务器并获取JSON数据的基本步骤。注意,Android现在推荐使用更现代的网络库,如OkHttp或Retrofit,因为它们有更好的性能和更丰富的功能。然而,对于学习和理解基础网络通信,...
本示例源码展示了如何利用Apache HttpClient库获取JSON数据,并将其解析后填充到ListView中。以下将详细介绍这一过程的关键步骤。 1. **HTTP请求**: - Apache HttpClient:在Android API 23之前,HttpClient是...
在实际项目中,我们通常会从网络请求中获取JSON数据。Android提供了`HttpURLConnection`和`OkHttp`等网络库来发送HTTP请求。假设我们使用`OkHttp`,可以这样获取并解析JSON: ```java OkHttpClient client = new ...
在Android中获取JSON数据通常需要通过HTTP请求。Android提供`HttpURLConnection`类,或者更推荐的`OkHttp`第三方库来实现。首先,创建一个HTTP请求到服务器,获取JSON响应。在实际应用中,可能需要处理网络权限,...
在上述代码示例中,我们看到了如何结合Gson库进行Json数据的获取和解析。`HttpUtils`类负责从指定URL下载Json数据,通过`DefaultHttpClient`发送HTTP GET请求,然后获取响应并将其转换为字符串。`JsonUtils`类则使用...