方法的作用:就是說把原來是對象的類型轉換成字符串類型(或者更確切的說是json類型的)。打個比方說,你有一個類,那麼你可以通過這個方法轉換成相應的json類型的。
語法:JSON.stringify(value [, replacer] [, space])
參數:
value:需要系列化的對象、數組、類
replacer:可選參數;可以是方法(function),也可以是數組(array)。
space:分割符
1.如果省略的話,那麼顯示出來的值 就沒有分隔符。直接輸出來
2.如果是一個數字的話,那麼它就定義縮進幾個字符,當然 如果大於10 ,則最大值爲10.
3.如果是一些轉義字符,比如“\t”,表示回車,那麼它每行一個回車。
4.如果僅僅是字符串,OK,就在每行輸出值的時候把這些字符串附加上去就OK。當然,最大長度也是10個字符。
代碼實例:
1.JSON.stringify(value)
var student = new Object();
student.name = "Lanny";
student.age = "25";
student.location = "China";
var json = JSON.stringify(student);
alert(student);
結果:
注:
(1).如果直接alert對象的話打印出來的是【object object】
(2).如果value是數組的話,結果也是一樣的,就是把數組對象轉爲json的字符串形式。
2.存在第二個參數,並且第二個參數爲function
var students = new Array() ;
students[0] = "Lanny";
students[1] = "dong";
students[2] = "I love you";
var json = JSON.stringify(students,switchUpper);
function switchUpper(key, value) {
return value.toString().toUpperCase();
}
alert(json);
結果:
3.存在第三個參數,第三個參數是數組
注:如果第一個參數是數組,第二個參數也是數組的話,只顯示第一個參數的值
var students = new Array() ;
students[0] = "Lanny";
students[1] = "dong";
students[2] = "I love you";
var stu = new Array();
stu[0] = "1";
stu[1] = "2";
var json = JSON.stringify(students,stu);
alert(json);
----如果第一個是對象,第二個是數組,如果第二個的value在第一個存在,那麼的話就以第二個的值做key,第一個值爲value進行表示
var student = new Object();
student.qq = "5485891512";
student.name = "Lanny";
student.age = 25;
var stu = new Array();
stu[0] = "qq";
stu[1] = "age";
stu[2] = "Hi";//這個student對象裏不存在。
var json = JSON.stringify(student,stu);
alert(student,stu)
結果:
第三個參數不做代碼演示...
擴展:
前端處理:前端是jqGrid,將jqGrid列表數據整體傳入後端保存
function saveFun(){
debugger;
Supp.alert("專家保存按鈕",Supp.alert.type.info);
var rowSet = $("#jqGrid").jqGrid('getRowData');//獲取或有行數據 json數組的形式
Supp.ajax({
url:ExpertExtract.saveOrUpdate,
type:"post",
async:true,
dataType:"json",
data: {
data :JSON.stringify(rowSet)//將json數組轉爲String字符串
},
success:function(resp){
if(resp){
Supp.showSuccess("保存成功!");
}else{
Supp.showSuccess("保存失敗!");
}
}
});
console.log(rowSet);
}
後端處理:
public OperResult<ExpertList> saveOrUpdate(HttpServletRequest request){
String data = request.getParameter("data");
JSONArray object = JSONArray.fromObject(data);//將String轉json數組
//JSONArray.toArray(object, ExpertList.class);
@SuppressWarnings({ "unchecked", "deprecation" })
List<ExpertList> lists=(List<ExpertList>)JSONArray.toList(object, ExpertList.class);//將json集合jArray放入list集合中,
for(ExpertList s : lists){
service.saveOrUpdate(s);
}
return OperResult.succeed(null);
}