如何将json数据放入html

时间:2014-08-11 21:10:33

标签: javascript html json cordova

我正在尝试在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]。使用我当前的代码我什么也看不见。我该怎么做?

4 个答案:

答案 0 :(得分:2)

您需要了解JSON的结构,然后导航它。试试herehere

作业列表数组似乎位于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");

}