JQuery .ajax 返回json格式,浏览器显示带有转义字符问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery .ajax 返回json格式,浏览器显示带有转义字符问题相关的知识,希望对你有一定的参考价值。
这个问题导致不能正确调用回调函数。
action中代码如下:
jsonmetadata这个类的作用是将list转换成arrary封装成json格式
jsp中的代码
运行后,在浏览器中显示的是:
"\"data\":[\"name\":\"abc\",\"oldname\":\"efg\"]"
而在控制台上显示的是:
"data":["name":"abc","oldname":"efg"]
搜索了一堆方法 试过了没有效果
这样的情况一般都是你的JSON不完整所致。在获取数据时这样处理一下就好了
$.post(url,data,function(youjson)youjson=$.parseJSON(youjson);
//然后继续处理你的代码就好了
);追问
浏览器输出的也是符合规则的json格式了,现在的问题是 ajax里的回调函数 success不执行,也根本运行不进去,我想应该是返回的数据没有取到。
追答一步一步的调试,看看哪一步出问题了。不要着急,你一定能解决的。支持你哦!
追问三克油,我在努力解决。。
参考技术A 在action里面你转换了2次,你已经定义了action返回一个json格式 struts会把你指定的“result”变量再次进行序列化。直接params="root","list" struts会自动将list转换成json格式追问这个问题解决了,现在就差一个 进不去回调函数
参考技术B 楼主怎么解决的go语言怎样把json格式的数据发给前端jquery处理
这个东西跟语言没关系,你要搞清楚http的流程,在你这种情况下,go语言写的程序是作为http server,jquery作为浏览器中运行的脚本,你可以使用jquery向服务器发送ajax请求,服务器返回json数据就可以了, http.Handle("/json", fooHandler)http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request)
fmt.Fprintf(w, "这里写上你的json数据就行了")
)
log.Fatal(http.ListenAndServe(":8080", nil))
对于jquery就
$.get("/test/json",function(m)alert(m););
就可以了 参考技术A var jsonobj = [];$(jsonobj).each(function(i,dom)) 参考技术B json.Unmarshal(obj)
以上是关于JQuery .ajax 返回json格式,浏览器显示带有转义字符问题的主要内容,如果未能解决你的问题,请参考以下文章