我在从URL变量中获取某个变量时遇到问题。 网址是:
.com/?asset=[{"AssetId":524,"DerivativeDefinitionId":6,"DerivativeId":816,"FileSizeInBytes":57131}]
我使用以下代码从URL获取资产部分:
$(document).ready(function(){
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
var decodedUrl = decodeURIComponent(getUrlVars()['assets']);
result = $.param(decodedUrl, true);
console.log(result);
});
但我完全不确定如何从我的结果var中获取AssetId
oder DerivateiveId
。
答案 0 :(得分:0)
查看How to get the value from URL Parameter?以获取网址中的参数。之后,您可以使用JSON.parse(param)将该url参数字符串解析为json对象。
答案 1 :(得分:0)
使用decodeURIComponent()后得到的URL与链接中的URL不同。 我不确定如何根据我的需要修改它。
答案 2 :(得分:0)
首先,在您的网址中,查询字符串是&#39; asset&#39;而你正试图获得资产价值。
然后,当你获得资产的价值时,它就是一个字符串,你可以使用JSON.parse将它解析为json。这将为您提供一个对象数组。从中你可以获取你需要的任何东西。
var decodedUrl = decodeURIComponent(getUrlVars()['asset']);
var result = JSON.parse(decodedUrl);
console.log('AssetId==>'+result[0].AssetId);
console.log('DerivativeId==>'+result[0].DerivativeId);
这是工作example。