日期:2014-05-16  浏览次数:20406 次

如何将前台符json格式的数组传到后台,并接收
1、问题一:
现在有个符合json格式的数组如下:
<script type="text/javascript">
  $(function(){
  var codes=[{'name':"test1",'startTime':'20140000','endTime':'20141212'},{'name':"test2",'startTime':'20143333','endTime':'20145555'}];
  $("#number").val(codes);
  });
  
  
  </script>
<body>
<form action="testJsonServlet">
<input type="hidden" name="happy" value="" id="number">
<input type="submit" value="提交">
</form>
</body>
我想点击提交的时候把数据传到后台。这样写对吗?
<input type="hidden" name="happy" value="" id="number">
另外在后台改如何接收、获取它的值呢?
String sss=request.getParameter("happy");
JSONArray json=JSONArray.fromObject(sss);
我用上面的方法发现没有json.length()方法啊!
3Q
------解决方案--------------------
首先JSON本身就是一个字符串,不具有对象性质

两种方法
1. 可以在前台处理,使用JSON.parse(expr)将字符串转为对象,但是这个方法貌似对JSON格式检查的非常严格,比如双引号...
2. 可以在后台进行处理,使用一些JSON处理类库,比如JSONObject
------解决方案--------------------
用json2.js转换一下,转换成字符串,应该现在的主流浏览器都有json转换的工具库了,
前台:
 $(function(){
  var codes=[{'name':"test1",'startTime':'20140000','endTime':'20141212'},{'name':"test2",'startTime':'20143333','endTime':'20145555'}];
  $("#number").val(JSON.stringify(codes));
  });
后台的没有写错