如何从JSON Url中获取变量

时间:2014-09-19 08:50:17

标签: jquery json

我在从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

3 个答案:

答案 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