ホームページ >バックエンド開発 >PHPチュートリアル >アンドロイドはJSONデータを取得します
ステップ 1: ページは JSON データを返します。
このスペース ブログ「PHP と AJAX の単純な実装」の json.php コードにいくつかの簡単な変更を加えます。コードは次のとおりです。コード $_GET['jsoncallback'].'('.custom_json::encode) をエコーします。 ($big_test). ')';
echo $_GET['jsoncallback'].custom_json::encode($big_test); に変更します
ファイルを jsondata.php として保存します。
ステップ 2: Android コードを作成します。
1. Contact クラスを作成し、set メソッドと get メソッドを設定します。
package com.domain;
public クラス Contact {
private int age;
private boolean is_human;
public }
public Contact(String name, int age, int sex, Double height,
boolean is_human, String string) {
this.name = 名前;
this.sex = 性別;
this.is_human = is_human;
this.string = 文字列;
public String getName() {
return name;
public void setName(String name);
}
public int getAge() {
年齢を返す
}
public void setAge(int age) {
this.age = 年齢
}
public int getSex() {
性別を返す
public void setSex(int sex) {
this.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 void setString(String string) {
this.string = string;
}
}
2. 入力ストリーム処理ツール クラス StreamTools を記述します。 Package com.shao.utils。 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();//Web ページのバイナリデータ
instream.close();
}
}
3. Android レイアウト ファイル main.xml を書き込みます。
Android:layout_width = "Fill_parent"
Android:layout_height = "Fill_parent"
& lt; TextView
android: id = "@" +ID/name "
android:layout_width =" 100dip "
android:layout_height ="wrap_content"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/> ;
新しいレイアウト ファイル item.xml を作成します。
Android:layout_width = "Fill_parent"
Android:layout_height = "Fill_parent"
& lt; TextView
android: id = "@" +ID/name "
android:layout_width =" 100dip "
android:layout_height ="wrap_content"
/>
android:layout_width="100dip"
android:layout_height="wrap_content"
/>
android:layout_width="100dip"
android:layout_height="wrap_content"
/>
android:layout_width="100dip"
android:layout_height="wrap_content"
/>
android:layout_width="100dip"
android:layout_height="wrap_content"
/>
android:layout_width="100dip"
android:layout_height="wrap_content"
/>
在string.xml追加如下一行:
4. パッケージ com.shao;
java.io.InputStreamをインポートします。
java.net.HttpURLConnectionをインポートします。
java.net.URLをインポートします。
java.util.ArrayList をインポートします。
java.util.Listをインポートします。
org.json.JSONArray をインポートします。
org.json.JSONObject をインポートします。
com.domain.Contact をインポートします。
com.shao.utils.StreamToolsをインポートします。
public class MyService {
public static List
{
String path = "http://192.168.1.100:8080/WebContent/testjson/jsondata.php";
リスト<連絡先> contacts = new ArrayList
URL url = 新しい URL(パス);
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 配列 = new JSONArray(json);
for(int i=0;i
JSONObject item = array.getJSONObject(i);
連絡先 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);
}
連絡先を返します。
}
}
5.编写主Activity类。
package com.shao;
import java.util.ArrayList;
java.util.HashMapをインポートします。
java.util.Listをインポートします。
com.domain.Contact をインポートします。
android.app.Activityをインポートします。
android.os.Bundleをインポートします。
android.util.Logをインポートします。
android.widget.ListViewをインポートします。
android.widget.SimpleAdapter をインポートします。
android.widget.Toastをインポートします。
public class TestXML extends Activity {
/**アクティビティが最初に作成されるときに呼び出されます。*/
@Override
public void onCreate(Bundle SavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
{
リスト<連絡先> を試してください。連絡先 = MyService.getLastContact();
リスト<ハッシュマップ<文字列,オブジェクト>> data = new ArrayList
ListView listview = (ListView)findViewById(R.id.listview);
for(連絡先 contact : contacts)
{
HashMap
item.put("名前", contact.getName());
item.put("セックス",contact.getSex());
item.put("年齢", contact.getAge());
item.put("高さ", contact.getHeight());
item.put("is_human", contact.isIs_human());
item.put("string", contact.getString());
data.add(項目);
}
SimpleAdapter アダプター = new SimpleAdapter(this, data, R.layout.item,
new String[]{"名前","性別","年齢","身長","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(アダプター);
} catch (Throwable e) {
Log.e("shao",e.toString());
Toast.makeText(this, R.string.error, 1).show();
}
}
}
6.开启访问ネットワーク機能。
步ステップ三試験。