【javascript】ajax提交成功后的json返回值

 通常处理服务器传来的json值时,咱们都会用两种方式进行处理:1.一种为使用eval()函数。var dataObj=eval("("+data+")");//转换为json对象(注:data为json数据);2. 使用Function对象来进行返回解析。var json =(new Function("","return "+data))();json

可是今天作项目(项目用struts2)时用这两种方法进行json读取,输出时一直是undefined。上网查了许多资料,大多都说不明白,后来查到一篇文章做者也遇到这种状况,他解决的办法是在action中将返回值声明json属性,在本身的项目上测试后不经过,后来解决的办法是再转一次。如下是本身的思考:从后台传来的数据虽然声明为json属性,可是传到前台时其实仍是一个字符串,不是一个json对象,这时候咱们须要对后台的数据进行处理,转化为json对象,而后获取json中的值。可是有时候后台传来的值不必定是标准的json格式的字符串,虽然咱们经过前面的两种方法之一转化后台传来的对象,可是这时候转化的json对象实际上仍是一个字符串,是一个标准的json字符串,咱们再一次转换后就成了一个json对象。服务器

      如下是部分代码:函数

           result = JSONObject.fromObject(map).toString();//后台代码,将map转成json对象测试

           success : function(result) {对象

       //前台返回值代码
       var obj = eval("("+result+")");
      //var data1 =(new Function("","return "+obj))();
      var data1=eval("("+obj+")");
     alert(data1.name);字符串

           }io

相关文章
相关标签/搜索