首页 > 代码库 > 把json格式对象转成可提交字符串格式,会过滤掉函数 {a: {b: 3}, b: [1], c: "d"} -> a.b=3&b[0]=1&c=d
把json格式对象转成可提交字符串格式,会过滤掉函数 {a: {b: 3}, b: [1], c: "d"} -> a.b=3&b[0]=1&c=d
var json = { name: "任务名称" , scoreRule: "", score: "", // 如果规则表达式不为空,则默认选中 “按规则表达式计算” unique: 1, startTime: "2014-09-15 20:20:20", endTime: "2014-10-15 20:20:20", status: 1, isTaks: 0, tradeType: 1, description: "业务描述" , codes: [ "16", "6" ], // 选中的平台 ids: [ "3"], // app内部链接 test: { a: 1, b: [1, 2, 3] }};var json2 = { a: 1, b: 2, c: { a: 1, b: { a: 1, b: [1, 2] }, c: [1, 2] }, d: [1, 2, { a: 1, b: { a: 1 }, c: [1, 2] }]};/** * 把json格式对象转成可提交字符串格式,会过滤掉函数 {a: {b: 3}, b: [1], c: "d"} -> a.b=3&b[0]=1&c=d * @param {Object} data 要转化的json对象 * @param {String} prefix 要带的前缀 * @return {String} 字符串 */function paramData(data, prefix) { var _getType = ({}).toString, _paramArray = function(arr, prefix) { var result = [], j = 0, len = arr.length; for (; j < len; j++) { var data =http://www.mamicode.com/ arr[j], type = _getType.call(data), subPrefix = prefix + "[" + j + "]"; result = result.concat(_paramAll(arr[j], prefix + "[" + j + "]")); } return result; }, _paramAll = function(data, prefix) { var result = [], type = _getType.call(data); switch (type) { case "[object Object]" : var subPrefix = prefix ? prefix + "." : "", i; for (i in data) result = result.concat(_paramAll(data[i], subPrefix + i)); break; case "[object Array]" : result = result.concat(_paramArray(data, prefix)); break; case "[object String]" : case "[object Number]" : result.push(prefix + "=" + data); } return result; }; prefix = prefix || ""; // if (prefix) { // prefix必须以 . 结尾 // prefix = /\.$/.test(prefix) ? prefix : (prefix + "."); // } else { // prefix = ""; // } return (function () { return _paramAll(data, prefix); }()).join( "&"); }console.log(paramData(json2, "rule"));console.log(paramData(json, "rule"));
把json格式对象转成可提交字符串格式,会过滤掉函数 {a: {b: 3}, b: [1], c: "d"} -> a.b=3&b[0]=1&c=d
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。