ajax请求web服务返回json格式
生活随笔
收集整理的這篇文章主要介紹了
ajax请求web服务返回json格式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于.net frameword3.5以上添加了對contenttype的檢查,當ajax發送請求時,如果設置了contenttype為json,那么請求webservice時,會自動將返回的內容轉為json的格式,json的格式iruxia {"d":"webservice方法返回的字符串內容"} 這時出現一個問題了,如果方法返回的是一個json格式的字符串,那么如何獲得實際的json對象,而不是只有一個屬性d的json對象呢? 其實很簡單,我們只需要在success回調函數中eval下jquery通過獲取webservice得到的json對象的d屬性,就可以獲取到實際的json對象了。 如下,如果方法返回的是 {"msg":"其實我也是json對象的字符串"} 這種信息,我們如何獲取到msg這個屬性的值呢? 首先一定要明確的時,調用webservice的方法后實際獲取到的json格式的字符串是這樣的 {"d":"{"msg":"其實我也是json對象的字符串"}"} ,jquery通過這個字符串生成的json對象只有一個屬性,那就是d,d存儲的是webservice方法返回的json格式的字符串信息,而不是json對象,所以不能通過 obj.d.msg來獲取msg信息。而是需要 var realobj=eval('('+o.d+')')來生成實際的json對象,然后realobj.msg才是需要的信息。 <script type="text/javascript">$(function () {$.ajax({url: "Artapi.asmx/HelloWorld",type: 'post',dataType: "json",contentType: "application/json; charset=utf-8",data: "{id:"+2+"}",success: function (data) {alert(data.d); var realobj = eval('(' + data.d + ')')alert(realobj.msg);},error: function () {alert('error~');}});})
</script>
[WebMethod]public string HelloWorld(int id){ string Message = "{\"flag\":true,\"msg\":"+id+"}"; return Message;}
?
轉載于:https://www.cnblogs.com/surfing/p/3256222.html
總結
以上是生活随笔為你收集整理的ajax请求web服务返回json格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaFX 的 UI 控件集 Cont
- 下一篇: 解决maven不能自动导入ojdbc14