我正在尝试在phonegap应用程序中使用REST webservice。这是代码 -
function myFunction() {
alert("Hello World");
$.ajax({
type : 'GET',
url : 'http://api.glassdoor.com/api/api.htm?t.p=19754&t.k=IFuttOxoRG&userip=127.0.0.1&useragent=&format=json&v=1.1&action=jobs&q=&l=San+Francisco&pn=1&ps=50',
crossDomain : true,
contentType: "application/json",
success : function(data){
alert("got data");
for( var i=0; i<5; i++) {
document.getElementById("demo").innerHTML = data[i].occupation;
}
},
error : function(XMLHttpRequest,textStatus, errorThrown) {
alert("error");
}
});
alert("here");
}
当我在浏览器中输入该网址时,this就是我所看到的。如何将所有职位列表打印到我的网页上? 如果我做document.getElementById(“demo”)。innerHTML = data;我在屏幕上看到[Object] [Object]。使用我当前的代码我什么也看不见。我该怎么做?
答案 0 :(得分:2)
您需要了解JSON的结构,然后导航它。试试here或here。
作业列表数组似乎位于data.response.jobListings
,但每一个都是一个对象,您必须决定如何转换为HTML。最简单的方法是使用JSON.stringify
将其恢复为JSON,但这不会非常用户友好。
success : function(data){
var listingJSON = JSON.stringify(data.response.jobListings);
document.getElementById("demo").innerHTML = listingJSON;
}
答案 1 :(得分:1)
试试这个。这应该将作业标题记录到控制台。您可以将它们附加到文档中,但也可以尝试记录&#39;列表&#39;我的代码中的对象供您参考,以了解它的结构。看看我如何使用listing [i] .jobTitle访问jobTitle,你可以对其他字段(例如location
)进行访问success : function(data){
var listings = data.response.jobListings;
console.log(listings)
for(i=0; i<listings.length; i++){
console.log(listings[i].jobTitle)
}
}
答案 2 :(得分:0)
JSON数据可以呈现为String,但您需要使用json解析器来解析字符串。
jQuery.parseJSON()
答案 3 :(得分:-1)
您需要将字符串解析为javascript对象,使用JSON.parse(data)
function myFunction() {
$.ajax({
type : 'GET',
url : 'http://api.glassdoor.com/api/api.htm?t.p=19754&t.k=IFuttOxoRG&userip=127.0.0.1&useragent=&format=json&v=1.1&action=jobs&q=&l=San+Francisco&pn=1&ps=50',
crossDomain : true,
contentType: "application/json",
success : function(data){
// turn the string response into a javascript object!
data = JSON.parse(data)
for( var i=0; i<5; i++) {
document.getElementById("demo").innerHTML = data[i].occupation;
}
},
error : function(XMLHttpRequest,textStatus, errorThrown) {
alert("error");
}
});
alert("here");
}