android json 解析简单实例

来源:互联网 发布:网络lp地址怎么设置 编辑:程序博客网 时间:2024/05/16 18:08
Android JSON解析跟JAVA 的JSON解析原理是一样的. Android自带的JSON方式跟方便,不需要导包啥的.不深究原理了,直接上代码:
public class JsonActivity extends Activity {         private TextView tvJson;      private Button btnJson;      private Button btnJsonMulti;      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);          tvJson = (TextView) this.findViewById(R.id.tvJson);          btnJson = (Button) this.findViewById(R.id.btnJson);          btnJsonMulti = (Button) this.findViewById(R.id.btnJsonMulti);          btnJson.setOnClickListener(new View.OnClickListener() {              @Override              public void onClick(View v) {                  String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGER);                  //获得返回的Json字符串                  String strResult = connServerForResult(strUrl);                  //解析Json字符串                  parseJson(strResult);              }          });          btnJsonMulti.setOnClickListener(new View.OnClickListener() {              @Override              public void onClick(View v) {                  String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGERS);                  String strResult = connServerForResult(strUrl);                  //获得多个Singer                  parseJsonMulti(strResult);              }          });      }      private String connServerForResult(String strUrl) {          // HttpGet对象          HttpGet httpRequest = new HttpGet(strUrl);          String strResult = "";          try {              // HttpClient对象              HttpClient httpClient = new DefaultHttpClient();              // 获得HttpResponse对象              HttpResponse httpResponse = httpClient.execute(httpRequest);              if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {                  // 取得返回的数据                  strResult = EntityUtils.toString(httpResponse.getEntity());              }          } catch (ClientProtocolException e) {              tvJson.setText("protocol error");              e.printStackTrace();          } catch (IOException e) {              tvJson.setText("IO error");              e.printStackTrace();          }          return strResult;      }      // 解析单个Json数据      private void parseJson(String strResult) {          try {              JSONObject jsonObj = new JSONObject(strResult).getJSONObject("singer");              int id = jsonObj.getInt("id");              String name = jsonObj.getString("name");              String gender = jsonObj.getString("gender");              tvJson.setText("ID号"+id + ", 姓名:" + name + ",性别:" + gender);          } catch (JSONException e) {              System.out.println("Json parse error");              e.printStackTrace();          }      }    //解析多个Json的数据      private void parseJsonMulti(String strResult) {          try {              JSONArray jsonObjs = new JSONObject(strResult).getJSONArray("singers");              String s = "";              for(int i = 0; i < jsonObjs.length() ; i++){                  JSONObject jsonObj = ((JSONObject)jsonObjs.opt(i))                  .getJSONObject("singer");                  int id = jsonObj.getInt("id");                  String name = jsonObj.getString("name");                  String gender = jsonObj.getString("gender");                  s += "ID号"+id + ", 姓名:" + name + ",性别:" + gender+ "\n" ;              }              tvJson.setText(s);          } catch (JSONException e) {              System.out.println("Jsons parse error !");              e.printStackTrace();          }    }   }  

0 0
原创粉丝点击