ajax请求
参考:https://blog.csdn.net/lutinghuan/article/details/46820023
http://jxd-zxf.iteye.com/blog/2072300
1、json 字符串转数组或集合
格式:
[{"jsonContent":"1","url":"http://127.0.0.1:8080/upload/image/201806/c9b59521-9d91-4bb7-bc86-be6d67c114e6.jpg"},{"jsonContent":"2","url":"http://127.0.0.1:8080/upload/image/201806/b487619e-28bc-4ffe-8d65-5e553f6ff799.jpg"},{"jsonContent":"","url":""},{"jsonContent":"","url":""}]
JSONArray jsonarray = JSONArray.fromObject(invitation.getContent());
List collection = (List) jsonarray.toCollection(jsonarray,InvitationFromJson.class);
例子1:将表单对象序列化成Json字符串提交
var formArray = editForm.serializeArray();
var detailFom = detailgrid.datagrid("getData").rows;
var mainForm = {};
for (var i=0; i<formArray.length; i++) {
mainForm[formArray[i].name] = formArray[i].value;
}
var detailDate = {};//json对象
detailDate.entity = mainForm;//主表
detailDate.ivfDs = detailFom;//明细
var detailDateStr = JSON.stringify(detailDate);//转json字符串
$.ajax({
url:"/ivf/incubator/save",
type: 'post',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data:detailDateStr,//json字符串
success: function(data){
if(data.result=="sucess"){
$.messager.alert('提示信息:', '保存成功', 'info',function(){
});
}else{
$.messager.alert('提示信息:', data.message, 'error');
}
});
参考:https://blog.csdn.net/lishuangzhe7047/article/details/28880009
例子2:后台list接收json字符串,自动封装实体
$(document).ready(function(){
var saveDataAry=[];
var data1={"userName":"test","address":"gz"};
var data2={"userName":"ququ","address":"gr"};
saveDataAry.push(data1);
saveDataAry.push(data2);
$.ajax({
type:"POST",
url:"user/saveUser",
dataType:"json",
contentType:"application/json",
data:JSON.stringify(saveDataAry),
success:function(data){
});
});
@RequestMapping(value = "saveUser", method = {RequestMethod.POST }})
@ResponseBody
public void saveUser(@RequestBody List<User> users) {
userService.batchSave(users);
}
2、json字符串转java对象
首先将json字符串转换为json对象,然后再解析json对象,过程如下。
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
根据json中的键得到它的值
String name = jsonObject.getString("name");
int num = jsonObject.getInt("num");
String sex = jsonObject.getString("sex");
int age = jsonObject.getInt("age");
将json对象转换为java对象
Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象
3、将java对象转换为json字符串
先将java对象转换为json对象,在将json对象转换为json字符串
JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象
String str = json.toString();//将json对象转换为字符串
参考:https://blog.csdn.net/gchb9527/article/details/8688279
汇总:JSON 字符串 与 java 对象的转换
1. 把java 集合或数组转换为json对象数组,并转为字符串
JSONArray array = JSONArray.fromObject(list);
String jsonstr = array.toString();
2.把JSON字符串转换为JAVA 对象数组
JSONArray json = JSONArray.fromObject(userStr);//userStr是json字符串
List<User> users= (List<User>)JSONArray.toCollection(json, User.class);
3. 把java对象转换成json对象,并转化为字符串
JSONObject object = JSONObject.fromObject(user);
Log4jInit.ysulogger.debug(object.toString());
4.把JSON字符串转换为JAVA 对象
JSONObject jsonobject = JSONObject.fromObject(jsonStr);
User user= (User)JSONObject.toBean(object,User.class);
java对象或集合转json字符串
JSONSerializer.toJSON(obj);
JSONSerializer.toJSON(List);
4、表单序列化
①表单序列化成j数组,再拼接成需要的json字符串
var formArray = $articleForm.serializeArray();
②表单序列化
var formArray = $articleForm.serialize();
后台实体接收,直接把前台传过来的参数写成对应的实体类,会自动进行封装
格式:title=222&articleCategoryId=60&cover=&_isPublication=false&publication=true&_isTop=false&publishType=0&pictureContent1=11&url1=&pictureContent2=&url2=&pictureContent3=&url3=&pictureContent4=&url4=&csrfToken=32d129b11f40b41851a0212b6cd0e779