把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 ...
随机推荐
- IOS SQLITE 数据库操作
NSArray * array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); N ...
- Selenium2Library系列 keywords 之 _SelectElementKeywords 之 get_selected_list_value(self, locator)
def get_selected_list_value(self, locator): """Returns the value of the selected elem ...
- 在ASM中移动数据文件
实验目的:在ASM存储环境下,要删除一个磁盘组,从而将磁盘组中的数据文件移动到另外一个磁盘组中. 查看数据文件存放的位置: SQL> select file#,name from v$dataf ...
- nodejs 5.2.0文档自翻译——Path模块
模块方法概览 Path path.basename(p[, ext]) path.delimiter path.dirname(p) path.extname(p) path.format(pathO ...
- hdfs[命令] dfsadmin
Usage: java DFSAdminNote: Administrative commands can only be run as the HDFS superuser. [-report] [ ...
- node-sqlserver :微软发布的 SQL Server 的 Node.js 驱动
node-sqlserver 是微软官方发布的 SQL Server 的 Node.js 的驱动程序.可允许 Windows 上运行的 Node.js 程序访问 SQL Server 和 Window ...
- Spring For Android初体验
Spring For Android是Spring框架的一个扩展,其主要目的在乎简化Android本地应用的开发,这其中包括了你可以使用该项目提供的 RestTemplate来为你的Android客户 ...
- 现代程序设计 homework-09
现代程序设计 homework-09 这次作业是要求将homework-02做成一个可演示的应用,目的是为了让用户看到程序的计算步骤以及中间结果. 借此机会也学了一下JavaScript,感觉总结的地 ...
- 最长回文子串(Longest Palindromic Substring)-DP问题
问题描述: 给定一个字符串S,找出它的最大的回文子串,你可以假设字符串的最大长度是1000,而且存在唯一的最长回文子串 . 思路分析: 动态规划的思路:dp[i][j] 表示的是 从i 到 j 的字串 ...
- DB2 VALUES用法详解
都知道Oracle有一个虚表(dual),我们可以用select sysdate from dual获取寄存器中的值.在DB2中,可以通过SYSIBM.SYSDUMMY1.SYSIBM.DUAL获取寄 ...