[英]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.