springmvc使用Ajax进行json数据交互

本文详细记录了如何使用Ajax通过前端获取富文本和用户ID,并将其通过JSON格式传入后台进行保存的过程。重点阐述了JSON.stringify序列化的重要性、服务端如何接收和处理JSON数据,以及在数据转换过程中的常用方法。此外,还强调了在服务端使用JSONObject所需的相关jar包版本以避免类找不到的错误。实例展示了如何通过JavaScript和Java实现这一功能。
摘要由CSDN通过智能技术生成

本文纯属个人纪录日常遇到的问题,如有不如请指摘,欢迎交流。

本文参考以下文章:

https://blog.csdn.net/gu_gu_/article/details/50551775

感谢@gu_gu_的博文

https://www.cnblogs.com/robbinluobo/p/6142720.html
感谢“萝卜条条”的总结

本文案例为实现通过前台获取富文本和用户id通过ajax传入后台

js代码:

function savenote() {
	//获取富文本内容
	var param = getEditorInfo();// editor.txt.html();
	$.ajax({
		type : "post",
		dataType : "json",
		contentType : "application/json",
		url : "/ShuangYe/Note/dosavenote",
		//提交内容,富文本信息及当前用户id
		data :JSON.stringify({
			'noteinfo' : param,
			'userid' : "{cxd1cnde}"
		}),
		success : function(data) {
			var result = data.result;
			if (result == "success") {
				alert("保存成功!");
			} else if (result == "fail") {
				alert("保存失败!");
			} else {
				alert("error");
			}
		},
		error : function() {
			alert("error");
		}
	});
}
后台接收代码:

	@RequestMapping(value="/dosavenote")
	@ResponseBody
	public Map<String, String> saveNoteInfo(@RequestBody JSONObject requestJson){
		//标准key/value格式JSONObjec数据可强转Map
		Map datamap = (Map)requestJson;
		Map resultdata = new HashMap();
		String userid = (String)datamap.get("userid");
		String noteinfo = (String)datamap.get("noteinfo");
		boolean flag = notemanager.addNewNote(userid, noteinfo);
		if(flag)
			resultdata.put("result", "success");
		else
			resultdata.put("result", "fail");
		return resultdata;
	}

过程中遇到的问题:

1、使用JSON.stringify序列化传输数据,如果不使用的话会导致服务端解析出错

2、服务端接收JSONObject数据后进行数据转换,各种类型间的转换可参考参考文章第2条连接,以下列举几项:

(1)String转JSONObject

String jsonMessage = "{\"语文\":\"88\",\"数学\":\"78\",\"计算机\":\"99\"}";

JSONObject  myJson = JSONObject.fromObject(jsonMessage);

(2)String转JSONArray

String jsonMessage = "[{'num':'成绩', '外语':88, '历史':65, '地理':99, 'object':{'aaa':'1111','bbb':'2222','cccc':'3333'}}," +

          "{'num':'兴趣', '外语':28, '历史':45, '地理':19, 'object':{'aaa':'11a11','bbb':'2222','cccc':'3333'}}," +

          "{'num':'爱好', '外语':48, '历史':62, '地理':39, 'object':{'aaa':'11c11','bbb':'2222','cccc':'3333'}}]";

 JSONArray myJsonArray = JSONArray.fromObject(jsonMessage);

 System.out.println(myJsonArray);

(3)String转Map

String jsonMessage = "{\"语文\":\"88\",\"数学\":\"78\",\"计算机\":\"99\"}";

JSONObject  myJson = JSONObject.fromObject(jsonMessage);

Map m = myJson; 

3、服务端使用JSONObject所需jar包如下:    
    commons-logging.jar  
    commons-lang-2.6.jar  
    commons-collections-3.2.2.jar  (特别强调这两个包,lang包不要使用超过3.0版本,collections不要使用超过4.0版本,不然会有找不到类的错误,具体说明参考第一参考链接博文)

    commons-beanutils-1.9.3.jar  
    json-lib-2.4-jdk15.jar  

    ezmorph-1.0.6.jar  

jar包地址:https://download.csdn.net/download/xiaohongmaoufo/10543029

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值