页面接受json串为空和不为空的操作及取值参数为变量

1.子页面参数filters是父页面接收来的参数,在父页面定义为全局变量var filters=‘’;

2.子页面会对filters重新赋值,并发回给父页面。

3.第一次打开子页面filters为空,第二次打开子页面的时候filters={“开始时间”:“{'value':'2013-03-22','des':'开始时间'}”,“结束时间”:“{'value':'2013-03-24','des':'结束时间'}}这种形式的字符串。在子页面通过String filters=request.getParameter("filters")。这正是问题的所在

4.在js中使用var filters=“<%=filters%>”。页面第一次加载正常,第二次打开的时候由于单双引号配对的问题导致filters不能正常解析。

5.在js中使用var filters=<%=filters%>。导致页面第一次加载就失败。

6.最后这种的办法是通过java来对它进行转化。先取该参数的长度int len=filters.length();当长度小于等于0的时候即为空(针对第一次页面加载),此时进行赋值操作filters=“{}”。此种赋值是为确保可以在filters为空的时候仍可以转换成json对象。

7.JSONObject  jsonObj=new JSONObject(filters);

8.var filters=<%=filters%>。按以上步骤操作后,页面初次和第二次加载都不会出错。


ps:

1.可以对一个字符串进行eval操作来转换成json串。

2.对于json串的取值是非常方便的,按以上的例子filters.开始时间,就可以取到对应参数的参数值{'value':'2013-03-22','des':'开始时间'}。对于json串“.”点后面的那个属性平时都是固定的参数名字,可是当参数名字不固定的时候呢?这时候还是需要用eval来帮助完成。var name="开始时间";  eval("var pm=json."+name); 这样仍然可以正确取出“开始时间”对应的参数值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值