jquery 解析两次json数据

本文讨论了在jQuery中如何处理需要解析两次JSON数据的场景。首先,从后台获取JSON数据,第一次解析用于获取XML内容,然后将XML转换的值用于第二次AJAX请求,解析JSON数组并展示。在实际操作中遇到的问题是,当两个JSON数据解析时,只能完成第一个的全部解析后再执行第二个。作者分享了相关代码,并提到了在解析后的数据拼接过程中,如何使用循环和传递索引来动态生成ID并显示数据。

1、解析两次json数据

后台取数解析json,第一次解析取出xml的数据,得到xml的数值在传值解析一次获取json数组,再显示出来。发现两个json数据,只能第一个全部解析完了,再执行第二次ajax,在循环赋值,贴代码

2、关于解析出来的数据拼接问题,通过获取的值,传i值,拼接id,来显示数据

$(item.result).find("MXXX").each(function(i){}})

<SCRIPT LANGUAGE="JavaScript">
	var s="";
	$(document).ready(function(){
		s=$.cookies.get("bh");
		//alert(s);
	})
	function load(){
		$.ajax({<span style="font-family: Arial, Helvetica, sans-serif;">//第一次ajax解析</span>

			type:"get",
			url:"http:**="+s,
			data:"",
			dataType:"json",
			success:callback,
			error:function(){
				$("#message").text("无当前信息检查是否正确");
				$("#pop").popup("open");
				CLose();
			}
		})
	}
	var pzxx,pzdm,list,pz,pzxh,xh;
	var ssq,ssz,sbqx;
	function callback(data){
		var obj=eval(data);
		$.each(obj.data,function(i,item){
			var today=$(item.result).find("FWQRQ").text();
			$(item.result).find("MXXX").each(function(i){
				pzdm=$(this).attr('PZZL_DM');
				if(pzdm!=""){
					$.ajax({//第二次ajax解析
					type:"get",
					url:"http://****m="+pzdm,
					data:"",
					dataType:"json",
					success:function(data){
						var objs=eval(data);
						$.each(objs.data,function(j,item){
							$("#"+i+"").append(item.pzzl_mc);//通过赋的id值,第二次数据append拼接在后面
						})
					}
				})
				}
			})
			$(item.result).find("MXXX").each(function(i){
				//pzdm=$(this).attr('PZZL_DM');
				if($(this).attr('PZXH')==""){
					pzxh="未报";
				}else if($(this).attr('PZXH')=="0000"){
					pzxh="已报";
				}
				xh=$(this).attr('PZXH');
				ssq=$(this).attr('SSSQ_Q');
				ssz=$(this).attr('SSSQ_Z');
				sbqx=$(this).attr('SBQX');
				//list+=""
				list+="<tr><td>期起:</td><td width='150px;'>"+ssq+"</td></tr>";
				list+="<tr><td>期止:</td><td>"+ssz+"</td></tr>";
				list+="<tr><td>期限: </td><td>"+sbqx+"</td></tr>";
				if(xh==""){
					list+="<tr><td>状态: </td><td style='color:red;'>未申报</td></tr>";
				}else if(xh=="0000"){
					list+="<tr><td>状态: </td><td style='color:blue;'>已申报</td></tr>";
				}
				list+="<tr><td>种类:</td><td width='100px'id="+i+"></td></tr>";//添加一个id值,方便第二次解析拼接
				list+="<tr><td colspan='2' height='30px'></td></tr>"
			})	
				$("#list").html(list);	//第一次数据添加进去了
		})
	}
	
	
		
	function CLose(){
	   $.mobile.loading( "hide");
	}
</SCRIPT>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值