簡體   English   中英

我可以從api網址提取JSON並用作json2html輸入嗎?

[英]Can I pull JSON from api url and use as json2html input?

我正在使用jQuery插件json2html在以html分層結構顯示json數據的網頁上工作。

當前,將json數據輸入到文本區域,然后按下按鈕以運行轉換。 這是從文本區域獲取json並開始轉換的當前函數。

    $('#btnVisualize').click(function() {

        //Get the value from the input field
        var json_string = $('#inputJSON').val();


        try
        {
            //json
            //var json = JSON.parse(json_string);

            eval("var json=" + json_string);

            visualize(json);
        }
        catch (e)
        {
            alert("Sorry error in json string, please correct and try again: " + e.message);
        }

    });

數據來自的api需要大量身份驗證,因此我有一個單獨的javascript文件,該文件會生成身份驗證並創建完整的URL來加載api。

function generateUrl(itemkey) {
    var orig = "http://explorerapi.barratthomes.co.uk/v2.0/development/getbyitemkey?ItemKey="+itemkey+"&";
    Auth.Auth = createAuth();
    var var_pairs = [
    {name: "Auth.Utc", val: encodeURI(Auth.Auth.Utc)},
    {name: "Auth.RequestId", val: Auth.Auth.RequestId},
    {name: "Auth.DeviceId", val: Auth.Auth.DeviceId},
    {name: "Auth.Hash", val: Auth.Auth.Hash}];
    for(var i=0; i<var_pairs.length; i++) {
        orig += (i==0?"":"&")+var_pairs[i].name+"="+var_pairs[i].val;
    }
    var var_names = ["BrandCode", "ApplicationId", "ApplicationVersion", "LanguageCode", "IsPublished", "MarketingSuiteDevelopmentId", "UserLocation", "Os", "ScreenResolution", "Hierarchical"];
    for(var j=0; j<var_names.length; j++) {
        orig += "&"+var_names[j]+"="+Auth[var_names[j]];
    }
    return orig;
}

這是生成URL的函數。

我需要從該函數獲取url並連接到api,然后將數據直接傳遞給json2html函數,因此我不再需要將json數據粘貼到文本區域中。

我一直在查看$.getJson$.parseJSON但沒有運氣,我不確定下一步要去哪里?

嘗試使用此Jsonp來從url中獲取數據

function insertIntoTextArea(content) {
document.getElementById('output').innerHTML = content;
}

// create script element
var script = document.createElement('script');
 // assing src with callback name
script.src = 'your proper url?callback=insertIntoTextArea';
       // insert script to document and load content
 document.body.appendChild(script);

您應該可以像這樣使用$ .getJSON

$ .ajax({dataType:“ json”,url:url,data:data,success:success});

然后只需將數據對象傳遞給json2html。 但是,請檢查您正在連接到http://explorerapi.barratthomes.co.uk/v2.0/development/getbyitemkey的API,因為它們可能需要JSONP(這幾乎只是執行回調函數來解決CORS) 。

參見http://api.jquery.com/jquery.getjson/

如果URL包含字符串“ callback =?” (或類似,由服務器端API定義),該請求將被視為JSONP。 有關更多詳細信息,請參見$ .ajax()中有關jsonp數據類型的討論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM