json篇---前台解析json

后台返回json格式的string类型数据,前台解析不了(比如data[i].id失败)。

前提:后台返回string类型数据,数据内容为json格式字符串。

解决:

//1.在请求时指定返回回来的数据是json格式
$.get("http://localhost:8080/hbskjzccx/detail", {'id':id}, function (data) {
            console.log(data);
        }, "json")

//2.用eval转换为json格式
 $.get("http://localhost:8080/hbskjzccx/detail", {'id':id, function (data) {
            console.log(data);
            list = eval('('+data+')')
            console.log(list);
            }
        })

//第一次的“console.log(data);”和第二次的“console.log(list);”结果相同

原理:

eval是个计算式子并返回结果的函数,式子内容为字符串。

eval()方法在处理方括号”{}”时,会把它当成是一个语句块。那么eval()方法只会执行该语句,并不会返回该值。

这样,如果需要返回json格式的字符串时,需要在外面套上“()”,表示使其强制转换成json格式。

posted @ 2022-10-29 21:56  zhuangzhongxu  阅读(145)  评论(0)    收藏  举报