zoukankan      html  css  js  c++  java
  • 【javascript】ajax提交成功后的json返回值

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

    但是今天做项目(项目用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);

               }

  • 相关阅读:
    CF1329A Dreamoon Likes Coloring(贪心)
    CF1330B Dreamoon Likes Permutations
    AcWing338 计数问题(数位dp)
    AcWing311 月之谜(数位dp)
    AcWing310 启示录(数位dp)
    CF1332E Height All the Same(数学)
    CF1332D Walk on Matrix(构造)
    CF1332C K-Complete Word(思维)
    js作用域
    js原型链笔记
  • 原文地址:https://www.cnblogs.com/Horsonce/p/8006408.html
Copyright © 2011-2022 走看看