日期:2014-05-16 浏览次数:20617 次
在上一篇中搭建了服务器端的程序,这篇我们来建立一个Android项目,来访问服务器取得JSON格式数据,并解析JSON数据格式,输出到日志控制台。
我们建立的项目目录结构如下:

运行的界面截图:

当我们分别点击四个按钮,可以看到控制台的输出日志:

以下是源代码:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/person"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="解析person数据"
android:onClick="click"/>
<Button
android:id="@+id/persons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="解析persons数据"
android:onClick="click"/>
<Button
android:id="@+id/listString"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="解析listString数据"
android:onClick="click"/>
<Button
android:id="@+id/listMap"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="解析listMap数据"
android:onClick="click"/>
</LinearLayout>package com.json.activity;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.json.bean.Person;
import com.json.util.HttpUtils;
import com.json.util.JsonTools;
public class MainActivity extends Activity {
private static String PATH = "http://192.168.56.1:8080/JsonProject/servlet/JsonServlet";
private static final String TAG = "MainActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void click(View v){
switch (v.getId()) {
case R.id.person:
String path1=PATH+"?action_flag=person";
String jsonString1 = HttpUtils.getJsonContent(path1);
Person person = JsonTools.getPerson("person", jsonString1);
Log.i(TAG, person.toString());
break;
case R.id.persons:
String path2=PATH+"?action_flag=persons";
String jsonString2 = HttpUtils.getJsonContent(path2);
List<Person> list2 = JsonTools.getPersons("persons", jsonString2);
Log.i(TAG, list2.toString());
break;
case R.id.listString:
String path3=PATH+"?action_flag=listString";
String jsonString3 = HttpUtils.getJsonContent(path3);
List<String> list3 = JsonTools.getList("listString", jsonString3);
Log.i(TAG, list3.toString());
break;
case R.id.listMap:
String path4=PATH+"?action_flag=listMap";
String jsonString4 = HttpUtils.getJsonContent(path4);
List<Map<String,Object>> list4 = JsonTools.getListMap("listMap", jsonString4);
Log.i(TAG, list4.toString());
break;
}
}
}package com.json.bean;
public class Person {
private int id;
private String name;
private String address;
public Person() {
super();
}
public Person(int id, String name, String addrss) {
su