Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android中對json的解析和處理

Android中對json的解析和處理

編輯:高級開發

android調用webservice時,經常要對JSon的格式進行處理,現在有兩種方法

  去處理:

  1 使用JSONObject 和 JSONTokener去解析

  2 使用GSON庫

  先看第一種方法,假如有如下的JSon字符串:

  {

  “name”: “myName”,

  “message”: ["myMessage1","myMessage2"],

  “place”: “myPlace”,

  “date”: ”thisDate”

  }

  第一種解決方法:

  public class main extends Activity {

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentVIEw(R.layout.main);

  try {

  TextView tv = (TextView)findViewById(R.id.TextVIEw01);

  String JSon = “{”

  + “ ”name”: ”myName”, ”

  + “ ”message”: [\"myMessage1\",\"myMessage2\"],”

  + “ ”place”: ”myPlace”, ”

  + “ ”date”: ”thisDate” ”

  + “}”;

  /* Create a JSON object and parse the required values */

  JSONObject object = (JSONObject) new JSONTokener(JSon).nextValue();

  String name = object.getString(“name”);

  String place = object.getString(“place”);

  String date = object.getString(“date”);

  JSONArray message = object.getJSONArray(“message”);

  tv.setText(“Name: “+ name +””);

  tv.append(“Place: “+ place +””);

  tv.append(“Date: “+ date +””);

  for(int i=0;i< p>

  {

  tv.append(“Message: “+ message.getString(i) +””);

  }

  2 使用GSON類庫

  GOOGLE提供的gson類庫,地址在:

  代碼如下:

  public class JSON_structure {

  public String name;

  public String place;

  public String date;

  public String[] message;

  }

  這其實是個POJO類

  try {

  /* Inflate TextVIEw from the layout */

  接上頁

  TextView tv = (TextView)findViewById(R.id.TextVIEw01);

  /* JSON data considered as an example. Generally this data is obtained

  from a web service.*/

  String JSon = “{”

  + “ ”name”: ”myName”, ”

  + “ ”message”: [\"myMessage1\",\"myMessage2\"],”

  + “ ”place”: ”myPlace”, ”

  + “ ”date”: ”thisDate” ”

  + “}”;

  Gson gson = new Gson();

  JSON_structure obj= gson.fromJson(json, JSON_structure.class);

  tv.setText(“Name: “+ obj.name +””);

  tv.append(“Place: “+ obj.place +””);

  tv.append(“Date: “+ obj.date +””);

  for(int i=0;i< p>

  {

  tv.append(“Message: “+ obj.message[i] +””);

  }

  }

  catch(Exception ex){ex.printStackTrace();}

  }

  } catch (JSONException e) {e.printStackTrace();}

  catch(Exception ex){ex.printStackTrace();}

  }

  }

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved