掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
對(duì)象轉(zhuǎn)為字符串:通過JSON.encode方法,這個(gè)是json.js里面的方法,引入到當(dāng)前文件就可以了。
字符串轉(zhuǎn)換為對(duì)象:①使用JSON.decode方法,同上,引入js就可以了。②jQuery中有個(gè)方法,$.parseJson也可以實(shí)現(xiàn)。

對(duì)象轉(zhuǎn)換為字符串:在struts2-json-plugin.jar中有個(gè)JsonUtil.serial方法。也可以自己自由定制,通過字符串拼接的方式實(shí)現(xiàn),json字符串的屬性一定要是雙引號(hào),單引號(hào)或者是不適用都會(huì)報(bào)錯(cuò)。eg:"{\"id\":123,\"name\":\"wch\",\"children\":[{\"id\":456}]}",
字符串轉(zhuǎn)換為對(duì)象:JsonObject.fromObject(),如果是數(shù)組就使用JsonArray.fromObject().json對(duì)象中只有對(duì)象或者是數(shù)組。不過這個(gè)只能轉(zhuǎn)換當(dāng)前的屬性,如果對(duì)象中有數(shù)組或者是列表就要自己再次賦值轉(zhuǎn)換。就比如上面的json字符串你是不能一步到位的,即使對(duì)象有個(gè)屬性是children這個(gè)list也不會(huì)自動(dòng)將字符串給你轉(zhuǎn)換為列表的。
java和js的接觸只會(huì)發(fā)生在jsp中(我目前是這么認(rèn)為的),在jsp中只要 var obj = <%=javaStr%>就可以了。也可以先賦值給js中的字符串var obj = "<%=javaStr%>"再使用第一步中的字符串轉(zhuǎn)換為對(duì)象。
如果要自己實(shí)現(xiàn)的話要,①先轉(zhuǎn)換為js中的字符串,通過參數(shù)傳遞的方式賦值給java中的屬性。②使用低第二步的方法進(jìn)行轉(zhuǎn)換。如果使用struts2的話這一切都顯得那么易如反掌了,你要做的就是定義action中同名的屬性。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流