把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 = 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的更多相关文章
- Newtonsoft.Json 把对象转换成json字符串
var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount ...
- 将psd格式批量转换成jpg或png格式(C#自制软件)
此项目基于.net framework 4.0 将psd格式批量转换成jpg或png格式. 链接:https://pan.baidu.com/s/16IEjX0sHaY9H3Ah7mv6IPQ 提取码 ...
- javascript将C#json序列化的Date对象转换成正常的Date格式
function ChangeDateFormat(cellval) { var date = new Date(parseInt(cellval.replace("/Date(" ...
- PHP将json或对象转成数组
今天老大突然给了我一个小任务,给我一个txt文件,里边是很多的json字串,要求将这些字串转换成php中的数组: 于是开足火力,用了将进5分钟的时间完成了任务,代码如下: $jsonStr = fil ...
- 【开发遇到的问题】Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(JSON parse error: Can not deserialize value of type java.util.Date from String[)
1.问题排查 - 项目配置 springboot 2.1 maven配置jackson - 出现的场景: 服务端通过springmvc写了一个对外的接口,查询数据中的表,表中有一个字段属性是时间戳,返 ...
- 将TIF格式批量转换成jpg或png格式(C#自制软件)
此项目基于.net framework 4.0 全选tif,拖进去,等待,完成. so easy... 链接:https://pan.baidu.com/s/1uCDhAT0uHRjdy4g557wK ...
- JSON与对象的相互转换
json是一种轻量级的数据格式,(本质为字符串) 低版本可以使用json2.js插件来解决.下载地址:https://github.com/douglascrockford/JSON-js JSON语 ...
- js中对象转化成字符串、数字或布尔值的转化规则
js中对象可以转化成 字符串.数字.布尔值 一.对象转化成字符串: 规则: 1.如果对象有toString方法,则调用该方法,并返回相应的结果:(代码通常会执行到这,因为在所有对象中都有toStrin ...
- Gson把对象转成json格式的字符串
近期在做一个java web service项目,须要用到jason,本人对java不是特别精通,于是開始搜索一些java平台的json类库. 发现了google的gson.由于之前对于protoco ...
随机推荐
- cocos2d-x 详解之 CCTexture2D(纹理图片)和 CCTextureCache(纹理缓存)
精灵和动画都涉及到纹理图片的使用,所以在研究精灵与动画之前,我们先来了解一下纹理图片类CCTexture2D和纹理缓存CCTextureCache的原理: 当一张图片被加载到内存后,它是以纹理的形式存 ...
- 【整理】Visual Studio快捷键
说明 很多开发人员使用Visual Studio的时候,由于对VS快捷键不熟悉,会影响到实际的开发效率.其实,有很多我们不知道(或已知)的快捷键,在我们熟练运用以后,能够提高我们整体的工作效率.以下是 ...
- 从python的yield说起
前段时间在读trac 中wiki模块的源码的时候,发现了很多地方都使用了yiled这一关键词, 感觉是在需要返回某个值的地方通过yield来代替return, 不是很明白其用法,所以仔细研究下. 一个 ...
- Hadoop在百度的应用
百度作为全球最大的中文搜索引擎公司,提供基于搜索引擎的各种产品,包括以网络搜索为主的功能性搜索:以贴吧为主的社区搜索:针对区域.行业的垂直搜索.MP3音乐搜索,以及百科等,几乎覆盖了中文网络世界中所有 ...
- sqlserver 删掉日志文件ldf以后 救命语句
sqlserver 删掉日志文件ldf以后 救命步骤: 先新建一个新数据库, 删掉新建的 .mdb 用想要还原的mdb覆盖 执行下面的语句 ALTER DATABASE 'DB_Core' SET ...
- 自动化运维工具ansible-如何设置客户端多python版本问题
问题:在使用ansible进行管理客户主机时,发现客户主机安装了多个版本的python,并且默认版本为3.0 shell>>cat list 192.168.2.9 shell>&g ...
- homework-08
这次作业是考察关于C++的一些使用,由于我的C++只掌握了基本功,所以我只有霸王硬上弓,勉强写写自己的浅见. 1. 理解C++变量的作用域和生命周期 对一个C++变量来说,有两个属性非常重要:作用域和 ...
- 【转】iOS 硬件授权检测:定位服务、通讯录、日历、提醒事项、照片、蓝牙共享、麦克风、相机等
iOS系统版本的不断升级的前提,伴随着用户使用设备的安全性提升,iOS系统对于App需要使用的硬件限制也越来越严格,App处理稍有不妥,轻则造成功能不可用用户还不知道,重则会造成App Crash. ...
- [iOS微博项目 - 1.8] - 各种尺寸图片加载 & 控件不显示研究
A. 图片的加载: [UIImage imageNamed:@"home"]; 加载png图片 一.非retina屏幕 1.3.5 inch(320 x 480) * ...
- flask中的request.form对象方法
'add','clear','copy','deepcopy','fromkeys','get','gtlist','has_key','items','iteritems','iterkeys',' ...