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