最近一直在做安卓开发,但是同事遇到了JAVA中jsp页面上json数据接收后放到一个标签中丢失一部分数据得问题,就帮忙解决了下,具体情况是,后台返回的jsonArray型数据,里面包含了字段是date 内容是年月日时分秒这样的数据 如"2019-07-01 10:05:12",传到页面上时就只剩下"2019-07-01",后面的包括其他的只要是在时分秒后面的数据,都没有了。初步分析是因为日期格式的冒号可能和json冲突,经过测试发现是因为日期和时间直接的空格导致的,如果把空格替换成"aaa"就可以全部展示,就一直找这个空格的转义方式,经测试都无果,后来就考虑是input接收的方式不对,原代码如下:
<input type="hidden" name="traineeInfo" id="traineeInfo" value=<%=traineeInfo%>/>
把traineeInfo这个jsonArray型数据直接放在value里面丢失空格后面的数据,如果value后面是String类型的数据加上双引号就可以。然后就考虑是因为格式不对,百度了一番,发现有人说是json型数据应该用单引号,就修改代码如下:
<input type="hidden" name="traineeInfo" id="traineeInfo" value='<%=traineeInfo%>'/>
很神奇的就可以了,仔细考虑下,还是有道理的,里面的内容是字符串,隐形的有双引号了,所以外面包裹一个单引号,算是用单引号圈个json内容的界限,这样想的话就能理解了
希望对大家有帮助,少走点弯路!