ASP.net程式,建立測試頁面。

需引用參考「Newtonsoft.Json.dll」元件

protected void Page_Load(object sender, EventArgs e)

    {
        int count = 4;

        book[] list = new book[count];

        for (int i = 0; i < count; i++)

        {
            list[i] = new book();

            list[i].name = "a" + i.ToString();

            list[i].price = i;

        }

 

        JsonSerializer jsr = new JsonSerializer();

        jsr.NullValueHandling = NullValueHandling.Ignore;

        StringBuilder sb = new StringBuilder();

        StringWriter sw = new StringWriter(sb);

        JsonWriter jw = new JsonTextWriter(sw);

        jsr.Serialize(jw, list);

        Response.Write(sb.ToString());

        Response.End();

    }

畫面輸出內容如下:

[{"name":"a0","price":0},{"name":"a1","price":1},{"name":"a2","price":2},{"name":"a3","price":3}]

 

 


 

 

 

Android程式

import org.json.*;

 

使用HttpPost自訂方法將Web的資訊取回

private String TestJson ( ){

  String res ="";

  String url = "http://127.0.0.1/JSONTest.aspx";

  HttpPost  hp = new HttpPost(url);

  List <NameValuePair> params = new ArrayList<NameValuePair>();

  params.add(new BasicNameValuePair("id","A")); //隨便定義的參數

  try   {

    hp.setEntity(new UrlEncodedFormEntity(params , HTTP.UTF_8));

    HttpResponse hr = new DefaultHttpClient().execute(hp);

    if (hr.getStatusLine().getStatusCode() == 200)

       res = EntityUtils.toString(hr.getEntity());
  }

  catch(Exception e){ }

  return res;

}

 


 

 

JSON執行解析並取出內容

private void ShowJson()

{

  String res = "";
  res = TestJson ( );


  System.out.println ( res ) ;

呈現「[{"name":"a0","price":0},{"name":"a1","price":1},{"name":"a2","price":2},{"name":"a3","price":3}]」

 

  try
  {


    JSONArray list = new JSONArray ( res ) ; //解析字串為Array

    System.out.println ( list.getString( 1 ) ) ; //以String型態取得Array的第二個Item

   呈現「{"name":"a1","price":1}」

 


    JSONObject obj = list.getJSONObject ( 1 ) ; //以JSONObject型態取得Array的第二個Item

    System.out.println ( obj.getString("name") ) ; //取得Array的第二個Item中的name項目

   呈現「a1」


  }
  catch(Exception e)
  {  }

}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Jiang Ying-Fu 的頭像
    Jiang Ying-Fu

    Jiang Ying-Fu的部落格

    Jiang Ying-Fu 發表在 痞客邦 留言(0) 人氣()