Android_JSON解析


解析Object/

//(1).解析Object之一:

{"url" : "http://www.cnblogs.com/qianxudt"}

// 解析方法

JSONObject demoJson=new JSONObject(jsonString);
String url=demojson.getString("url");


  
 //(2).解析Object之二:
  {"name":"android","version":"iphone"};

  //解析方法
  JSONObject demoJson=new JSONObject(jsonString);
  String name=demoJson.getString("name");
  String version=demoJson.getString("version");
  System.out.println("name:"+name+",version:"+version);


  
  
  解析Array/
  
  //(3)解析Array之一
  {"number":[1,2,3]}

  // 解析方法:
  JSONObject demoJson=new JSONObject(jsonString);
  JSONArray numberList=demoJson.getJSONArray("number");//获得数组的键number-->[1,2,3]
  for(int i=0;i<numberList.length();i++){  // 遍历数组
	  //因为数字中的类型为int,所以为getInt,其他getString,getLong同用
	  System.out.println(numberList.getInt(i));
	  
  }

  
  
  //(4).解析Array之二:

 {"number":[[1],[2],[3]]}
  // 解析方法

  //嵌套数组遍历

  JSONObject demoJson=new JSONObject(jsonString);
  JSONArray numberList=demoJson.getJSONArray("number");
  for(int i=0;i<numberList.length();i++){
	  // 获取数组中的数值
	  System.out.println(numberList.getJSONArray(i).getInt(0));
	  
  }


  
  解析Object和Array混合/
  //(5).解析Object和Array:

  {"mobile":[{"name":"android"},{"name":"iphone"}]}

  // 解析方法
  JSONObject demoJson=new JSONObject(jsonString);
  JSONArray numberList=new demoJson.getArray("mobile"); //mobile键,得到 ---->[{"name":"android"},{"name":"iphone"}]
  for(int i=0;i<numberList.length();i++){
	  
	  System.out.println(numberList.getJSONObject(i).getString(name));
	  
	  
  }



单数据{'singer':{'id':01,'name':'tom','gender':'男'}}

多个数据{"singers":[
        {'id':02,'name':'tom','gender':'男'},
         {'id':03,'name':'jerry,'gender':'男'},
{'id':04,'name':'jim,'gender':'男'},
{'id':05,'name':'lily,'gender':'女'}]}
  
.................................................................................................
  
  // 普通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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值