❶ js如何獲取ajax返回的json的數據
var obj = eval('(' + json + ')'); 或其他工具把json字元串轉換為js對象 ,然後obj.id 這樣訪問
❷ AJAX 怎麼獲取JSON中的指定數據
假設你從ajax獲取字元串為 ajaxString,則可以這樣獲取ID:
var jsonData = JSON.parse(ajaxString);
var id = jsonData.result.ID;
❸ ajax怎麼取出json數據
你好,用遍歷的方式取出data中的數據進行操作:
$.each(data,function(n,value){
alert(value.x+'---'+value.y);
});
❹ 怎麼通過ajax從後台獲取json數據
1.第一步:創建非同步對象
var xhr=new XMLHttpRequest ();//創建一個非同步對象。
上面創建非同步對象的方法非瀏覽器都支持。IE7以上也支持。
2.第二步:創建http請求(只是打開和url的連接,並不會發送請求。)
var xhr=new XMLHttpRequest();
xhr.open("get","介面的地址","true");
//參數一:發送請求的方式:方式分別有post和get
//參數二:請求地址
//參數三:是否是非同步提交true:非同步,flase:同步提交
//如果使用post請求需要為post請求設置一個請求頭(必須在發送數據之前)設置方法如下:
//xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
3.第三步:發送數據(get和post發送數據的方式不相同)
var xhr=new XMLHttpRequest ();//創建一個非同步對象。
xhr.open("get","介面地址?name=zhangsan","true");
//在發送數據上需要注意的是get和post的發送方式
//get:數據需要拼接到open方法裡面的URL地址里格式為URL?數據。(注意:get方式也還是需要調用send方法如不調用數據將不會發送)
//post:數據直接寫到send方法里即可如下:
// xhr.send("name=zhangsan");
4.第四步:設置監聽請求狀態的回調函數
請求狀態分為5步:
0.未初始化:非同步對象創建出來但是還沒有打開連接,(即未調用open方法)
1.已初始化:非同步對象已經創建並且打開了連接(調用了open方法),但是還沒有發送請求(未調用end方法)
2.已發送數據:已經調用了send方法,但web伺服器響應還未返回
3.正在接收:web伺服器接收完數據並且處理完畢後,向客戶端發送響應結果
4.接收完畢:當web伺服器響應的數據全部接收完畢
以上序號對應readyState的值
完整的是這樣:
var xhr=new XMLHttpRequest ();//創建一個非同步對象。
xhr.open("get","介面地址","true");
//下面的回調函數是會動態監聽請求狀態
xhr.onreadystatechange=function(){
//readyState屬性會記錄下5種請求狀態
if(xhr.readyState == 4){
alert("web伺服器響應的數據全部接收完畢")
}
}
❺ ajax獲取到json數據怎麼顯示在jsp頁面tb上
第一步:在你的Action中創建一個json數據
public class AjaxAction extends ActionSupport{ /** * */private static final long serialVersionUID = 1L; private String result; public String getResult() { return result; } public void setResult(String result) { this.result = result; }public String getjson() { JSONObject json = new JSONObject(); json.put("name","張三"); json.put("password","123456"); result=json.toString(); return SUCCESS;}
第二步:編寫struts.xml文件中的內容
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <!-- 設置開發者模式 修改action中的名字可以不用重啟伺服器 --> <constant name="struts.devMode" value="true"></constant> <!-- 只有在後綴中有(.do)的才經過,這個value可以自己修改 --> <constant name="struts.action.extension" value="do"></constant> <!-- 開啟動態方法調用 --> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <package name="default" extends="json-default" namespace=""> <action name="ajax" class="com.action.AjaxAction" method="getjson"> <result name="success">/ajaxjson.jsp</result> <result type="json" ><!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對應的getter方法 --> <param name="root">result</param> </result> </action> </package> </struts>
凡是使用Struts2序列化對象到JSON的action,所在的package必須繼承自json-default,注意,這里唯一的result,沒有指定name屬性。parm設置name=「root」表示局部刷新,返回根目錄頁面.
第三步:首先先了解Ajax的原理:這是用jQuery做的,需要引 js
function testCheck(num){ $.ajax({ type:"post",//提交方式url:"TestCheckServlet",//提交地址async:true,//是否非同步請求dataType:"html",//返回類型data:{"num":num},//傳過去的值success:function(data,textStatus){//成功執行的方法var json=eval("("+data+")");//將傳過來的數據轉json,也可以傳過來就是json數據免得麻煩轉 alert(json.name); }, error:function(){//失敗執行的方法alert("error"); } }) }
❻ 如何取出 ajax返回的json數據
vartemp="";
$.ajax({
url:"",
async:false,//同步
success:function(data){
//$("#show1").html(data);//當async:true時是「非同步」,只能在回調函數中獲取值
temp=data;//當async:false時是「同步」,此時外面才能獲取到回調函數中的值}
//array=data;
})
//如果data是json,可以使用
vararray=newArray();
❼ ajax怎麼獲取返回的json數據
首先要明白ajax的基本格式,參考下面的內容,可以發現,success是請求成功後伺服器返回的數據,接收只需要把回調函數的值處理就可以了,如:
response:即為伺服器返回的數據,例如:{"uid":123,"name":"jghdream"},
如下輸出即可:
....
success:function(response){
console.log(response.uid);
console.log(response.name);
}
.....
以下是ajax的一些參數:
$.ajax({
type:'post',
url:'/testajax.php',
dataType:'json',
data:{uid:uid,rands:Math.random()},
success:function(){
alert('ajaxreturnsuccess');
}});
url,類型:String,默認值: 當前頁地址。發送請求的地址
data,類型:String,發送到伺服器的數據。將自動轉換為請求字元串格式。GET 請求中將附加在 URL 後。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'
dataType,類型:String,預期伺服器返回的數據類型。如果不指定,jQuery 將自動根據 HTTP 包 MIME 信息來智能判斷,比如 XML MIME 類型就被識別為 XML。在 1.4 中,JSON 就會生成一個 javaScript 對象,而 script 則會執行這個腳本。隨後伺服器端返回的數據會根據這個值解析後,傳遞給回調函數。可用值:
"xml": 返回 XML 文檔,可用 jQuery 處理。
"html": 返回純文本 HTML 信息;包含的 script 標簽會在插入 dom 時執行。
"script": 返回純文本 JavaScript 代碼。不會自動緩存結果。除非設置了 "cache" 參數。注意:在遠程請求時(不在同一個域下),所有 POST 請求都將轉為 GET 請求。(因為將使用 DOM 的 script標簽來載入)
"json": 返回 JSON 數據 。
"jsonp": JSONP 格式。使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數名,以執行回調函數。
"text": 返回純文本字元串
success,當請求之後調用。傳入返回後的數據,以及包含成功代碼的字元串。
❽ jQuery AJAX獲取JSON數據
首先你要擁有一個 服務端Json介面。
然後, 通過Ajax調用介面
$.ajax({
type:'get',
url:'請求專介面地址',
dataType:'json',
success:function(res){
//請求成功,調用該方法,參數屬res就是服務端返回的Json數據
},
error:function(err){
//請求失敗,err中存放了錯誤信息
}
})
❾ ajax前台提交數據,Json數據在java後台怎麼取出來
String json = request.getParamter("參數名");
獲得字元串格式的json數據
❿ jquery ajax 怎樣跨域獲取 json 數據
jsonp是英文json with padding的縮寫。它允許在伺服器端生成script tags至返回至客戶端,也就是動態生成javascript標簽,通過javascript callback的形式實現數據讀取。
html頁面端示例代碼:
復制代碼代碼如下:
//首先要引入jquery的js包
jQuery(document).ready(function(){
$.ajax({
type : "get", //jquey是不支持post方式跨域的
async:false,
url : "http://api.taobao.com/apitools/ajax_props.do", //跨域請求的URL
dataType : "jsonp",
//傳遞給請求處理程序,用以獲得jsonp回調函數名的參數名(默認為:callback)
jsonp: "jsoncallback",
//自定義的jsonp回調函數名稱,默認為jQuery自動生成的隨機函數名
jsonpCallback:"success_jsonpCallback",
//成功獲取跨域伺服器上的json數據後,會動態執行這個callback函數
success : function(json){
alert(json);
}
});
});
伺服器端示例代碼,以java為例:
伺服器端代碼,是重點,開始以為,只要客戶端通過jsonp就可以直接跨域訪問,其實不然,需要伺服器端的支持才行。
復制代碼代碼如下:
public void jsonpTest() throws IOException{
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
//根據html指定的jsonp回調函數的參數名,獲取回調函數的名稱
//callbackName的值其實就是:success_jsonpCallback
String callbackName = (String)request.getAttribute("jsoncallback");
//簡單模擬一個json字元串,實際可使用google的gson進行轉換,次數通過字元串拼接
//{"name":"張三","age":28}
//\是對"號進行轉義
String jsonStr = "{\"name\":\"張三\",\"age\":28}";
//最終返回的數據為:success_jsonpCallback({"name":"張三","age":28})
String renderStr = callbackName+"("+jsonStr+")";
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write(renderStr);
}