利用js解析php的表单数据

/*** JsonParse*  Created by usher.yue.* User: usher.yue* Date: 17/9/7* Time: 13:50* 心怀教育梦-烟台网格软件技术有限公司*/
var obj = {'data[][classid][0]': '1000150097620084286','data[][create_time][0]': '1504692288','data[][kcid][0]': '1033150427887550927','data[][schoolid][0]': '1033144479144228284','data[][type][0]': '2','data[][uid][0]': '1034145308280458231','data[][zyid][0]': '1000150235157063544','data[][zytype][0]': 'homework-exercise','data[][classid][1]': '10001500976200842861','data[][create_time][1]': '1504692288','data[][kcid][1]': '1033150427887550927','data[][schoolid][1]': '1033144479144228284','data[][type][1]': '2','data[][uid][1]': '1034145308280458231','data[][zyid][1]': '1000150235157063544','data[][zytype][1]': 'homework-exercise','data[0][classid][2]': '10001500976200842861','data[0][create_time][2]': '1504692288','data[0][kcid][2]': '1033150427887550927','data[0][schoolid][2]': '1033144479144228284','data[0][type][2]': '2','data[0][uid][2]': '1034145308280458231','data[0][zyid][2]': '1000150235157063544','data[0][zytype][2]': 'homework-exercise','data[0][classid][3]': '10001500976200842861','data[0][create_time][3]': '1504692288','data[0][kcid][3]': '1033150427887550927','data[0][schoolid][3]': '1033144479144228284','data[0][type][3]': '2','data[0][uid][3]': '1034145308280458231','data[0][zyid][3]': '1000150235157063544','data[0][zytype][3]': 'homework-exercise'
};class Xue12JsonConvert {/*** deep merge* @param target* @param source* @returns {*}* @private*/__d(target, source) {for (var k in source) {if (target[k] && target[k].toString() === "[object Object]") {this.__d(target[k], source[k])}else {if (this.__type(target[k]) === "[object Array]") {//去空合并if (this.__type(source[k]) === "[object Array]") {for (let item of source[k]) {item && target[k].push(item);}}else{target[k].push(source[k]);}} else {target[k] = source[k];}}}return target;}/*** json parser* @param obj* @param keyList* @param deepVal* @returns {*}* @private*/__parseToJson(obj, keyList, deepVal) {let retObj = null;if (!keyList) {let re = /([_a-zA-Z]\w+|\[\]|\[[0-9]+\]|\[[_a-zA-Z]\w*\])/g;let combineArr = [];let combineObj={};for (var key in obj) {retObj = {};//解析keylet matchSubKey = re[Symbol.match](key);let indexMatch = /^\[([0-9]+)\]$/.exec(matchSubKey[1]);let noneIndexMatch = /^\[\]$/.exec(matchSubKey[1]);let objectMatch = /^\[([a-zA-Z_]\w+)\]$/.exec(matchSubKey[1]);if (indexMatch) {retObj[matchSubKey[0]] = [];} else if (noneIndexMatch) {retObj[matchSubKey[0]] = [];} else if (objectMatch) {retObj[matchSubKey[0]] = {};}//赋值retObj[matchSubKey[0]] = this.__parseToJson(null, matchSubKey.slice(1), obj[key]);//合并对象combineObj=this.__d(combineObj,retObj);}//解析数据return combineObj;} else {if (keyList.length > 1) {let indexMatch = /^\[([0-9]+)\]$/.exec(keyList[0]);let noneIndexMatch = /^\[\]$/.exec(keyList[0]);let objectMatch = /^\[([a-zA-Z_]\w+)\]$/.exec(keyList[0]);if (indexMatch) {retObj = [];retObj[indexMatch[1]] = this.__parseToJson(null, keyList.slice(1), deepVal);} else if (noneIndexMatch) {retObj = [];retObj[noneIndexMatch[1]] = [];retObj.push(this.__parseToJson(null, keyList.slice(1), deepVal));} else if (objectMatch) {retObj = {};retObj[objectMatch[1]] = {};retObj[objectMatch[1]] = this.__parseToJson(null, keyList.slice(1), deepVal);}} else if (keyList.length == 1) {let indexMatch = /^\[([0-9]+)\]$/.exec(keyList[0]);let noneIndexMatch = /^\[\]$/.exec(keyList[0]);let objectMatch = /^\[([a-zA-Z_]\w+)\]$/.exec(keyList[0]);if (indexMatch) {retObj = [];retObj[indexMatch[1]] = deepVal;} else if (noneIndexMatch) {retObj = [];retObj.push(deepVal);} else if (objectMatch) {retObj[objectMatch[1]] = deepVal;}}}return retObj;}/*** type* @param o* @returns {*}* @private*/__type(o) {return Object.prototype.toString.call(o);}/*** 转换* @param obj* @returns {*}*/parseToJson(obj) {return this.__parseToJson(obj);}
}let json = new Xue12JsonConvert();
let r = json.parseToJson(obj);
console.log(JSON.stringify(r))

利用js解析php的表单数据相关推荐

  1. 利用commons-fileupload 上传图片(包含表单数据)

    在一个表单中包含普通文本数据,另外还有需要上传的图片,那么本程序将图片保存到服务器上的一个图片目录中,文本数据则获取然后输出,查看传输是否正确,后面的处理为涉及. 上传的jsp页面: 最后将信息输出: ...

  2. 利用ajax提交form表单数据

    利用thymeleaf引擎创建的html中,使用了adminLTE模板,ajax提交form表单数据,本以为很容易实现,却遇到了很多问题,这里进行总结. 1.get方式提交 通过serialize() ...

  3. 利用PHP HTML5 MySQL 将表单提交的数据写到数据库

    先来看一下我的这个简单的表单样式: 请忽略图下面的提示信息, 问题不大 看看关键代码: <form action="" method="post"> ...

  4. JS动态模拟Form表单提交数据

    分享知识  传递快乐 JS动态模拟Form表单提交数据 <!DOCTYPE html> <html lang="en"> <head><m ...

  5. 如何发送HTML表单数据

    多数时候,HTML表单的目的只是为了把数据发给服务器,之后服务器再处理这些数据并发送响应给用户.虽然看起来挺简单的,但我们还是得注意一些事情以确保传送的数据不会破坏服务器.或者给你的用户制造麻烦. 数 ...

  6. php中的全局变量$_POST收集表单数据

    < !-- php中的$POST被广泛的用于手机表单数据,在HTML中from的标签指定的该属性是method="post" 下面我们将显示一个输入的字段,以及一个提交的按钮 ...

  7. 使用 Servlet 读取表单数据

    Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析: getParameter():可以调用 request.getParameter() 方法来获取表单参数的值. getP ...

  8. Servlet 表单数据

    很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序.浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法. GET 方法 GET 方法向页 ...

  9. react如何获取表单数据

    react如何获取表单数据? 分为两种情况:第一种是每次输入都会更新状态第二种是只有用到的时候才获取(会用大量的ref,不推荐) 这里主要介绍第一种 //这是我们要操作的数据state = {resu ...

  10. MVC教程第四篇:传递表单数据

    MVC教程第四篇:传递表单数据     摘要 本文将完成我们"MVC公告发布系统"的公告发布功能,以此展示在ASP.NET MVC中如何传递处理表单的数据. 前言 通过前几篇文章, ...

最新文章

  1. 日志分析logstash插件-grok详解
  2. [原创]微软拼音输入法2007(含64位版)
  3. 48天打造你的专属 Twilio——浅谈运营商通信中台
  4. Maven仓库添加自定义jar包
  5. aspx、ashx、asmx文件处理请求效率比较
  6. ASP.NET Core CORS 简单使用
  7. CF :K 一个含n条边的带权无向连通图,q次查询,每次查询两点间的最短距离。...
  8. 两用物项许可证办理流程_办理医疗器械经营许可证流程
  9. pdf2htmlex linux,pdf2htmlEX Windows Version
  10. 倾斜摄影与三维实景建模技术设计书.PDF(文档可下载)
  11. nosqlbooster pojie
  12. 三菱模拟量fx3u4da_FX3U-4DA使用案例三菱FX3U-4DA用户手册(模拟量控制篇) - 广州正凌...
  13. Kafka(四).KafkaJAVA 基础API
  14. Typora加上搜狗输入法快捷方法
  15. Python为何能上位碾压Java?
  16. 百度地图-初步的地图创建和标识
  17. win10下载安装office2016
  18. 怎么用c语言编辑出天依蓝,我天依蓝
  19. Yolov7实战,实现网页端的实时目标检测
  20. 20实际最牛逼的10大算法

热门文章

  1. Linux系统手动安装rpm包依赖关系分析(以Kernel升级为例)
  2. 如何关闭打开了多个activity的activity
  3. [UITableViewCell]小结
  4. ubuntu samba
  5. golang学习笔记14 golang substring 截取字符串
  6. [如何构建自己的轮式移动机器人系统·从入门到放弃]机器人底层篇
  7. Kafka Consumer API示例
  8. CSS color设置与调色板
  9. Linux 网卡流量查看
  10. angularJS使用rootscope创建父域和子模态框通用的属性与函数