本文纯属个人纪录日常遇到的问题,如有不如请指摘,欢迎交流。
本文参考以下文章:
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