解析多json组成的字符串

{"result":0,"num":1,"contents":[{"friendID":8,"familyID":4,"friendName":"8978","isActive":1,"createTime":"2014/03/04 17:23:42"}]}
{"result":23,"num":1,"contents":[{"type":4,"content":null,"sendTime":"2014/03/04 19:26:26","senderId":1,"nickName":"11"}]}

//String str = "{\"result\":0,\"num\":1,\"contents\":[{\"friendID\":8,\"familyID\":4,\"friendName\":\"8978\",\"isActive\":1,\"createTime\":\"2014/03/04 17:23:42\"}]}{\"result\":23,\"num\":1,\"contents\":[{\"type\":4,\"content\":null,\"sendTime\":\"2014/03/04 19:26:26\",\"senderId\":1,\"nickName\":\"11\"}]}" ;
						//Log.e("old",str);
						if(null == str){
							return ;
						}
						boolean isContain = str.contains("}{") ; // 是否包含了很多json
						if(isContain){// 包含了很多json,需要拆分,分开解析
							String[] jsons = str.split("[}][{]") ;
							if(null == jsons)
								return ;
							for(int i=0 ;i<jsons.length ;i++){
								if(i%2 == 0)
									jsons[i] = jsons[i] + "}" ;
								else
									jsons[i] = "{" + jsons[i] ;
							}
							
							for(int j=0 ;j<jsons.length ;j++){
								Log.e("json","---------- josn " + j + " ------------");
								JSONObject jsonObject =  null;
								try {
									jsonObject = new JSONObject(str);
									String result = jsonObject.optString("result") ;
									int num = jsonObject.optInt("num") ;
									LogUtil.e("findFamilyFriends", "result = " + result+" ,num = " + num) ;
									JSONArray jsonArray = jsonObject.getJSONArray("contents");
									if((null == jsonArray) && (jsonArray.length() < 0)){
										LogUtil.e("findFamilyFriends", "no contents!") ;
										return ;
									}
									
									for(int i=0 ;i<num ;i++){
										JSONObject json = jsonArray.getJSONObject(i);
										Iterator<String> iter = json.keys();
										String key = null ;
										String value = null ;
										while(iter.hasNext()){
											key = iter.next() ;
											value = json.getString(key) ;
											LogUtil.e("findFamilyFriends", key + " = " + value) ;
										} 
									}
								} catch (JSONException e) {
									e.printStackTrace();
								}
								
							}
						}else{
							JSONObject jsonObject =  null;
							try {
								jsonObject = new JSONObject(str);
								String result = jsonObject.optString("result") ;
								int num = jsonObject.optInt("num") ;
								LogUtil.e("findFamilyFriends", "result = " + result+" ,num = " + num) ;
								JSONArray jsonArray = jsonObject.getJSONArray("contents");
								if((null == jsonArray) && (jsonArray.length() < 0)){
									LogUtil.e("findFamilyFriends", "no contents!") ;
									return ;
								}
								
								for(int i=0 ;i<num ;i++){
									JSONObject json = jsonArray.getJSONObject(i);
									Iterator<String> iter = json.keys();
									String key = null ;
									String value = null ;
									while(iter.hasNext()){
										key = iter.next() ;
										value = json.getString(key) ;
										LogUtil.e("findFamilyFriends", key + " = " + value) ;
									} 
								}
							} catch (JSONException e) {
								e.printStackTrace();
							}
						}
					}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值