【问题标题】:how to paramameters double name to json如何将双重名称参数化为json
【发布时间】:2014-06-12 07:01:58
【问题描述】:

我有一个这样的字符串:

abc=foo&chk_seq%5B%5D=5&chk_seq%5B%5D=7&xyz=5

(来自ajaxComplete事件的ajaxOptions.data参数)

如何将它转换成这样的 javascript 对象:

obj = {
  abc: 'foo',
  chk_seq[]: 5,
  chk_seq[]: 7,
  xyz: 5
}

【问题讨论】:

    标签: javascript json


    【解决方案1】:

    First Google result:

    var params = getUrlVars('some=params&over=here');
    console.log(params);
    
    function getUrlVars(url) {
        var hash;
        var myJson = {};
        var hashes = url.slice(url.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            myJson[hash[0]] = hash[1];
        }
        return myJson;
    }
    

    它甚至还有fiddle

    更新

    我认为这可能是您真正想要的:

    javascript convert url parameters to object”的第一个谷歌搜索结果:

    var search = location.search.substring(1);
    JSON.parse('{"' + decodeURI(search)
        .replace(/"/g, '\\"')
        .replace(/&/g, '","')
        .replace(/=/g,'":"') + '"}'
    );
    

    【讨论】:

    • 是这个 chk_seq%5B%5D=5& chk_seq%5B%5D=7 这个结果 {abc: "foo", chk_seq%5B%5D: "7", xyz: "5"}
    • 据我所知,这是一个 URL 编码的参数字符串。 JSFiddle 已关闭,因此我无法检查这是否也适用于数组。检查我更新的答案。
    • 我在谷歌上搜索...但是所有的东西都不喜欢答案。
    • arielnmz 是的,我尝试了第二个代码,但不是多值。结果到 chk_seq 只有单值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2014-05-06
    • 2014-04-29
    相关资源
    最近更新 更多