【json】前台ajax序列化的多个属性拼接在一起的字符串,转化为JSONObject对象
1.首先看一下前台序列化了哪些东西:
部分js代码
//查询按钮
$(".questButton").click(function(){
$.ajax({url:"/questionnaire/statistics.jhtml",
type:"get",
async:false,
traditional:false,
data:{questOptions:$("input[name='category']:checked").serialize(),condition:$(".form1 :not(input[name='category'])").serialize()},
success:function(data){
前台发送给后台的序列化的字符串是如下的样子:

2.后台接受到就是两个字符串,并且是编码之后的,所以第一点先要按照编码解析,然后再进行处理
@RequestMapping(value= "/statistics" ,produces = "text/html;charset=UTF-8")
@ResponseBody
public String statistics(HttpServletRequest request,String condition,String questOptions) throws UnsupportedEncodingException{
questOptions = questOptions.replaceAll("category=", "");
String [] questArr = questOptions.split("&"); condition = URLDecoder.decode(condition, "utf-8");
condition = "{"+condition.replaceAll("&", "\",").replaceAll("=", ":\"")+"\"}";
JSONObject jsonObject = JSONObject.fromObject(condition);
System.out.println("JSONObject格式:"+jsonObject); System.out.println("为转化之前的字符串:"+condition);
System.out.println("另一个参数的样子:"+questOptions);
return null;
}
condition = URLDecoder.decode(condition, "utf-8");
先进行编码解析
condition = "{"+condition.replaceAll("&", "\",").replaceAll("=", ":\"")+"\"}";
替换相关的符号,拼接成标准的JSON字符串
JSONObject jsonObject = JSONObject.fromObject(condition);
转换成JSONObject对象 3.结果如下
JSONObject格式:{"userName":"测试数据","sex":"男","age1":"20","age2":"30","height1":"","height2":"","weights1":"","weights2":"","uaValue1":"","uaValue2":"","uaphValue1":"","uaphValue2":""}
为转化之前的字符串:{userName:"测试数据",sex:"男",age1:"20",age2:"30",height1:"",height2:"",weights1:"",weights2:"",uaValue1:"",uaValue2:"",uaphValue1:"",uaphValue2:""}
另一个参数的样子:2.1.2&3.1.1&3.2.3&7.2.2
【json】前台ajax序列化的多个属性拼接在一起的字符串,转化为JSONObject对象的更多相关文章
- fastjson将json字符串转化为java对象
目录 一.导入一个fastjson的jar包 二.Json字符串格式 三.根据json的格式创建Java类 四.给java类的所有属性添加setter方法 五.转换为java对象 一.导入一个fast ...
- 通过获取客户端Json数据字符串,反序列化为实体对象的一段代码
#region 保存候选人数据 /// <summary> /// 保存候选人数据 /// </summary> /// <param name="entity ...
- springMVC中前台ajax传json数据后台controller接受对象为null
在jquery的ajax中,如果没加contentType:"application/json",那么data就应该对应的是json对象,反之,如果加了contentType:&q ...
- .net MVC 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错,字符串的长度超过了为 maxJsonLength 属性设置的值
在.net mvc的controller中,方法返回JsonResult,一般我们这么写: [HttpPost] public JsonResult QueryFeature(string url, ...
- 使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性
"/"应用程序中的服务器错误.使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错.字符串的长度超过了为 maxJsonLength 属性设置的值. ...
- JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值
在.net mvc的controller中,方法返回JsonResult,一般我们这么写: [HttpPost] public JsonResult QueryFeature(string u ...
- 使用Json.NET来序列化所需的数据
我们在做开发的时候,很多时候需要和Json数据格式打交道,如Web开发里面,很多时候,数据通过Json进行传递到页面上,然后在进行处理的.而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用 ...
- 谈JSON在Ajax中的使用
JSON是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.AJAX是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术.之前也曾介绍过在PHP语言中使用JSON的文章, ...
- ASP.NET Web API中的JSON和XML序列化
ASP.NET Web API中的JSON和XML序列化 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok ...
随机推荐
- flume高级组件及各种报错
1,one source two channel 创建conf文件,内容如下: #定义agent名, source.channel.sink的名称 access.sources = r1 access ...
- svn无法checkout大文件的解决办法
美术组同事checkout出现,在网络好的情况下,有同事更新下来了,后来在配置文件http.conf的最后加入下面压缩参数才解决问题,配置如下: <IfModule deflate_module ...
- POJ3466(01背包变形)
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...
- Jmeter4.0启动闪退问题解决方案
jmeter:4.0 jdk版本:1.8 在Jmeter.bat的最后添加pause可以让Jmeter启动停止: 添加了pause进行强制停止在启动命令页面,查看到Jmeter报错信息如下: 第一次解 ...
- [ Mariadb ] 通过HAProxy代理后端Mariadb实现负载均衡
一.本次环境架构图 由于公司内网服务器有限,所以后端采用Mariadb自带的mysql_multi模型实现多实例. mysql的多实例有两种方式可以实现,两种方式各有利弊. 1.使用多个配置文件启动不 ...
- django日志的设置
关于django的日志设置详细可以看下官方文档:https://yiyibooks.cn/xx/Django_1.11.6/topics/logging.html 示例: # 日志文件配置 LOGGI ...
- 【C++】隐式类型转换和 explicit关键字
来自:黄邦勇帅 1. 当类中带有一个参数的构造函数时,将执形对象的隐式转换,比如有类 A,有一个带有一个参数的构造函数A(int i){}则当出现语句A m=1;就会调用带有一个参数的构造函数来创建对 ...
- pandas基础学习
1.导入两个数据分析重要的模块import numpy as npimport pandas as pd2.创建一个时间索引,所谓的索引(index)就是每一行数据的id,可以标识每一行的唯一值dat ...
- 前端工程师必备PS技能
PS参考线及其辅助 视图-->新建参考线 也可以快捷键Ctrl+R,显示区的上侧和左侧就会出现标尺.任意点选中,并拖动标尺,便会出现浅蓝色的辅助线.只有在移动工具下,才能拖动某一条参考线. 删除 ...
- python的垃圾回收机制和析构函数__del__
析构函数__del__定义:在类里定义,如果不定义,Python 会在后台提供默认析构函数. 析构函数__del__调用: A.使用del 显式的调用析构函数删除对象时:del对象名: class F ...