把表单转换为JSON对象
2012-06-25 16:37
148 查看
Object convert(Object formValues)
Parameters: {Object} formValues 表单对象 @returns {Object} 真正的对象
function convert(formValues) {
var result = {};
for ( var name in formValues) {
var value = formValues[name];
if (name.indexOf('.') < 0) {
result[name] = value;
continue;
} else {
var simpleNames = name.split('.');
// 构建命名空间
var obj = result;
for ( var i = 0; i < simpleNames.length - 1; i++) {
var simpleName = simpleNames[i];
if (simpleName.indexOf('[') < 0) {
if (obj[simpleName] == null) {
obj[simpleName] = {};
}
obj = obj[simpleName];
} else { // 数组
// 分隔
var arrNames = simpleName.split('[');
var arrName = arrNames[0];
var arrIndex = parseInt(arrNames[1]);
if (obj[arrName] == null) {
obj[arrName] = []; // new Array();
}
obj = obj[arrName];
if (obj[arrIndex] == null) {
obj[arrIndex] = {}; // new Object();
}
obj = obj[arrIndex];
}
}
obj[simpleNames[simpleNames.length - 1]] = value;
}
}
return result;
}
{abc:'123'} | {abc:'123'} |
{abc.ab:'123'} | {abc:{ab:'123'}} |
{abc[0]:'123', abc[1]:'234'} | {abc:['123', '234']} |
{abc[0].ab:'123', abc[1].bc:'234'} | {abc:[{ab:'123'}, {bc:'234'}]} |
function convert(formValues) {
var result = {};
for ( var name in formValues) {
var value = formValues[name];
if (name.indexOf('.') < 0) {
result[name] = value;
continue;
} else {
var simpleNames = name.split('.');
// 构建命名空间
var obj = result;
for ( var i = 0; i < simpleNames.length - 1; i++) {
var simpleName = simpleNames[i];
if (simpleName.indexOf('[') < 0) {
if (obj[simpleName] == null) {
obj[simpleName] = {};
}
obj = obj[simpleName];
} else { // 数组
// 分隔
var arrNames = simpleName.split('[');
var arrName = arrNames[0];
var arrIndex = parseInt(arrNames[1]);
if (obj[arrName] == null) {
obj[arrName] = []; // new Array();
}
obj = obj[arrName];
if (obj[arrIndex] == null) {
obj[arrIndex] = {}; // new Object();
}
obj = obj[arrIndex];
}
}
obj[simpleNames[simpleNames.length - 1]] = value;
}
}
return result;
}
相关文章推荐
- form表单数据转换为json对象
- json字符串转换为json对象,表单json
- 学习利用JSON 摆脱表单与业务对象双向转换的繁琐工作
- Json对象与Json字符串互转(4种转换方式)表单提交和表单序列化
- 表单提交json数组,后台转换为对象接收
- 用表单格式化插件jquery.serializejson将表单上的数据转换成JSON对象
- form表单转换为json对象
- jQuery实现form表单序列化转换为json对象功能示例
- form表单的数据转换为json对象
- form表单数据转换为json对象
- 把表单转换为JSON对象
- 获取页面表单数据转换为json对象
- 把表单转换为JSON对象
- JSON 对象如何转换为 Html 表单
- 利用JSON 让表单与业务对象双向转换
- form表单数据转换为json对象
- 表单的数据转换为json对象
- 利用JSON 让表单与业务对象双向转换
- form表单数据转换为json对象
- 将form表单里的数据封装成对象 json2.js的例子 jquery的serialize方法转换空格为+号的解决方法