首頁 >後端開發 >php教程 >android取得json數據

android取得json數據

巴扎黑
巴扎黑原創
2016-11-24 11:06:101024瀏覽

步驟一:頁面返回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; ing; 

public Contact() { } 

public Contact(String name, int age, int sex, Double height, 
   boolean is_human, String string) { 
  this.name = name; . 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 = 問題


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


public Double getHeight() { 
return height


public boolean isIs_human() { 
return is_human; 


public void setIs_human(boolean is_human) { 

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 {java.io.InputStream; 

public class StreamTools {java.io.InputStream; 

public class StreamTools { Streampob​​p.  ByteArrayOutputStream outstream = new ByteArrayOutputStream(); 
  byte[] buf = new byte[1024]; 
  int len = 0 ; 
  while(( len = instream.read(buf)) ! 
  while(( len = instream.read(buf)) != -1). 0, len); 
  } 
  byte[] data = outstream.toByteArray();//網頁的二進位資料 
  outstream.close(); 


3.編寫android佈局文件main.xml。

 
 :   android " 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > ip" 
    android:layout_height="wrap_content"
/> 

android:id="@+id/listview" 
  android:layout_width="fill_parent" 
   item. xml。

 
 :   android " 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > ip" 
    android:layout_height="wrap_content"
/> 
  android:id="@+id/sex" 
  android:layout_width="100dip" 
android:layout_height="wrap_content" 
/>; 

  android:id="@+id/age" 
  android:layout_width="100dip" 🜳🠎ight7> View 
android:id="@+id/height" 
  android:layout_width="100dip" 
    android:layout_height="wrap_content" 
/> 
      android:layout_height="wrap_content" 
/> 
  android:id="@+id/string" 
/> 

 

在string.xml新增下列一行: 

網路錯誤 

4.撰寫業務實作類別。

package 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; 

() 拋出Throwable 

  String path = "http://192.168.1.100:8080/WebContent/testjson/jsondata.php"; 
  列表;聯絡人= new Array'sList>
  URL url = 新URL(路徑); 
  HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 
  conn.setConnectTimeout(5*1000); 
  conn.setConnectTimeout(5*1000); 
  conn.setConnectTimeout(5*1000); (); 
  byte[] data = StreamTools.readInputStream(instream); 
  String json = new String(data); 
  JSONArray 陣列= new JSONArray(json); 
  JSONArray 陣列= new JSONArray(json); 
  JSONArray 陣列= new JSONArray(json); 
  for );i++) 
  { 
   JSONObject item = array.getJSONObject(i); 
   聯絡人contact = new Contact(item.getString("姓名"),item.getInt("年齡"),IntemContact(item.getString("姓名"),item.getInt("年齡"),IntemIntem. ),item.getDouble("身高"),item.getBoolean("is_ human" ),item.getString("string"));
   contact.add(contact); 
  } 
} 🠎.



5.編寫主Activity類別。

package com.shao; 

導入java.util.ArrayList; 
導入java.util.HashMap; 
導入java.util.List; 

Activity導入.domain.Contact;
導入android.os.Bundle; 
導入android.util.Log; 
導入android.widget.ListView; 
導入android.widget.SimpleAdapter; 
導入android.widget.Toast;widget.SimpleAdapter; 
導入android.widget.Toast; **在第一次創建活動時調用。*/ 
    @Override 
    public void onCreate(Bundle savingInstanceState) { 
      main); 
        嘗試{ 
   清單;聯絡人= MyService.getLastContact(); 
   List>>data = new ArrayList>(); 
   
y   ListView listview = (List
   
y   ListView listview = (List
   for(聯絡人聯絡人:聯絡人) 
   { 
    HashMap; item = new HashMap(); 
    it .put("it .put("性別",contact.getSex()); 
    item.put("age", contact.getAge()); 
    item.put("height ), contact.getHeight()); ("is_ human", contact.isIs_ human()); 
    item.put("string", contact.getString()); 
資料.新增(項目); 
    
   } 
   
   
   
    
     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(適配器); 
   
   
  
   Toast.makeText( this, R.string.error, 1).show(); 
  } 
    } 




6.開啟網路功能。 

 

步驟三測試。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn