是否有可导入的函数将javascript对象转换为查询字符串?

时间:2016-12-20 21:17:26

标签: javascript ember.js

我是否可以导入一个函数来将普通的javascript哈希/对象转换为查询字符串?

所以,这是要求:

  • 不能基于jQuery(我需要fastboot支持)
  • 必须支持嵌套对象&阵列。
  • 必须内置于Ember框架(无插件)

我不是真的想要另外一个插件依赖,因为我知道这是在Ember内部完成的。

更新 为了阐明嵌套的含义:具有嵌套数组或对象属性的对象将转换为Rails熟悉的括号语法:

{my_values: [1,2]} => ?my_values[]=1&my_values[]=2

{nested: {key: value}} => ?nested[key]=value

1 个答案:

答案 0 :(得分:0)

这样就可以了:

function toQueryString (obj){
    var result =[];
    for(var i in obj){
        if(obj.hasOwnProperty(i)){
            if(typeof obj[i] === "object") result.push(toQueryString(obj[i]))
            else result.push(encodeURIComponent(i) + "=" + encodeURIComponent(obj[i]));
        }
    }
    return result.join("&");
}

Example

编辑:为嵌套对象添加递归