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的更多相关文章

  1. Newtonsoft.Json 把对象转换成json字符串

    var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount ...

  2. 将psd格式批量转换成jpg或png格式(C#自制软件)

    此项目基于.net framework 4.0 将psd格式批量转换成jpg或png格式. 链接:https://pan.baidu.com/s/16IEjX0sHaY9H3Ah7mv6IPQ 提取码 ...

  3. javascript将C#json序列化的Date对象转换成正常的Date格式

    function ChangeDateFormat(cellval) { var date = new Date(parseInt(cellval.replace("/Date(" ...

  4. PHP将json或对象转成数组

    今天老大突然给了我一个小任务,给我一个txt文件,里边是很多的json字串,要求将这些字串转换成php中的数组: 于是开足火力,用了将进5分钟的时间完成了任务,代码如下: $jsonStr = fil ...

  5. 【开发遇到的问题】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写了一个对外的接口,查询数据中的表,表中有一个字段属性是时间戳,返 ...

  6. 将TIF格式批量转换成jpg或png格式(C#自制软件)

    此项目基于.net framework 4.0 全选tif,拖进去,等待,完成. so easy... 链接:https://pan.baidu.com/s/1uCDhAT0uHRjdy4g557wK ...

  7. JSON与对象的相互转换

    json是一种轻量级的数据格式,(本质为字符串) 低版本可以使用json2.js插件来解决.下载地址:https://github.com/douglascrockford/JSON-js JSON语 ...

  8. js中对象转化成字符串、数字或布尔值的转化规则

    js中对象可以转化成 字符串.数字.布尔值 一.对象转化成字符串: 规则: 1.如果对象有toString方法,则调用该方法,并返回相应的结果:(代码通常会执行到这,因为在所有对象中都有toStrin ...

  9. Gson把对象转成json格式的字符串

    近期在做一个java web service项目,须要用到jason,本人对java不是特别精通,于是開始搜索一些java平台的json类库. 发现了google的gson.由于之前对于protoco ...

随机推荐

  1. 常见设计模式解析和实现(C++)Prototype模式(原型模式)

    作用:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. UML结构图: 抽象基类: 1)  Prototype:虚拟基类,所有原型的基类,提供Clone接口函数 接口函数: 1)  P ...

  2. 【九度OJ】题目1201-二叉排序树

    题目 建树过程是递归,"递归的思路不是很复杂",经过题目1078的训练,直接开始编码.提交及修改的过程告诉自己,这是一个错觉,对递归的理解还应该再进一步. 自己的实现 #inclu ...

  3. Tomcat中的线程池StandardThreadExecutor

    之所以今天讨论它,因为在motan的的NettyServer中利用它这个线程池可以作为业务线程池,它定制了一个自己的线程池.当然还是基于jdk中的ThreadExecutor中的构造方法和execut ...

  4. vs2010 无法连接到asp.net development server

    http://blog.csdn.net/xqf309/article/details/7881257 今天打开之前的程序,按了F5进行调试,等了会弹出窗体来说:无法连接到asp.net develo ...

  5. 虚拟化技术对比:Xen vs KVM

    恒天云:http://www.hengtianyun.com/download-show-id-68.html 一.说明 本文主要从功能方面和性能方面对Xen和KVM对比分析,分析出其优缺点指导我们恒 ...

  6. arduino图形化编程——ardublock

    下载地址:http://sourceforge.net/projects/ardublock/ 项目主页:https://github.com/taweili/ardublock 运行效果图 ardu ...

  7. Innodb刷脏页技术深度挖掘

    DBA某数据库集群每日17:00左右会出现一个性能陡降的现象,在10~20秒内主库出现大量慢查询.这些查询本身没有性能问题,也没有任何关联,可以认为是由于数据库系统负载较重,由于并发导致的慢查询.通过 ...

  8. WS103C8例程——串口2【worldsing笔记】

    在超MINI核心板 stm32F103C8最小系统板上调试Usart2功能:用Jlink 6Pin接口连接WStm32f103c8的Uart2,PC机向mcu发送数据,mcu收到数据后数据加1,回传给 ...

  9. hdu 4496 (并差集)

    题意:给出一个图,m条边,输出删除前i条边后该图的联通块的个数. 思路:刚开始想着是不是联通问题,后来看明白题意后知道,如果从最后一条边添加的话,答案就会出来了,就是并差集的操作. #include& ...

  10. UVaLive 7269 Snake Carpet (找规律,模拟)

    题意:给定一个数字n,表示有n条蛇,然后蛇的长度是 i ,如果 i 是奇数,那么它只能拐奇数个弯,如果是偶数只能拐偶数个,1, 2除外,然后把这 n 条蛇, 放到一个w*h的矩阵里,要求正好放满,让你 ...