JSON内含两类值时如何区分

一、 servlet中分别检索了GoodsType表和Provider表的数据(封装为List<表对应实体类对象>),从两个List中取值,并通过两个for遍历,向StringBuffer中循环追加数值,组成一个JSON对象,并传向前台JSP页面。

List<GoodsType> gtList=new ArrayList<GoodsType>();	
			List<Provider> pList=new ArrayList<Provider>();
		GoodsTypeBiz gtBiz=new GoodsTypeBiz();
		ProviderBiz pBiz=new ProviderBiz();
		gtList=gtBiz.getGoodsType();
		pList=pBiz.getProvider();
		response.setContentType("text/html;charset=utf-8");
			PrintWriter out = response.getWriter();
			StringBuffer sb = new StringBuffer("[");
			for (int i = 0; i < pList.size(); i++) {
				
				sb.append("{");
				sb.append("\"pid\":");
				sb.append("\"" + pList.get(i).getPid() + "\"");
				sb.append(",");
				sb.append("\"pname\":");
				sb.append("\"" + pList.get(i).getPname() + "\"");		
				sb.append("}");
				sb.append(",");
			}
			for(int j=0;j<gtList.size();j++){
				
				sb.append("{");
				sb.append("\"gtid\":");
				sb.append("\"" + gtList.get(j).getGtid() + "\"");
				sb.append(",");
				sb.append("\"gtname\":");
				sb.append("\"" + gtList.get(j).getGtname() + "\"");
				sb.append("}");
				sb.append(",");
				
			}
			sb = sb.deleteCharAt(sb.length() - 1);
			sb.append("]");
			out.print(sb);

二、 前台JSP中的JavaScript中,对JSON对象内数值进行判断,分别添加到对应的

<select>
<option>JSON数值</option>
<option> JSON数值</option>
… ….
</select>

循环遍历JSON时,通过JSON[i]!=undefined判断数值类型,分别追加到对应的option。否则,两个select中会出现内容为undefined的option。

$(function() {
		$.getJSON("servlet/GP.get", "por=" + "2", function(returnData) {
			for ( var i = 0; i < returnData.length; i++) {
				if (returnData[i].gtid != undefined) {
					$("#goodstype").append(
							"<option value='"+returnData[i].gtid+"'>"
									+ returnData[i].gtname + "</option>");
				}
				if (returnData[i].pid != undefined) {
					$("#p").append(
							"<option value='"+returnData[i].pid+"'>"
									+ returnData[i].pname + "</option>");
				}

			}
		});
	});

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值