設(shè)置JSON種種技巧進行說明學(xué)習(xí)
例如我的一個Ext的form中有設(shè)置JSON與name:'company'這兩個textfield 我向這兩個textfield中輸入信息之后(比如***個填bill,第二個填入Microsoft),submit這個form的時候,其實是并不想真的提交給哪個頁面,只是想獲得一個對象變量。
像這樣的格式{name:"bill",company:"microsoft"} 查了半天手冊,并沒有看到Ext的formPanel本身有這樣的方法(也許其他地方有我沒查到) 希望有高手知道如何解決的方便告知一下,謝謝。
恩,原來我也想過為每個textfield設(shè)置id,然后用Ext.getCmp(id).getValue()獲取值,但是這個表單里的textfield有很多,如果都這么寫的話重復(fù)代碼太多了,太丑陋啦 ,而且現(xiàn)在我做的這個東西比較亂,頁面多都是動態(tài)加載沒有iframe什么的,能不設(shè)置JSON就不設(shè)置id,避免和別人寫的部分沖突。#t#
而且這個formPanel是橫向排列的,為了colum排列這個格式,這個formPanel里套了好幾層的items,靠從子項的index取值太麻煩,而且我也還不會。出現(xiàn)這個問題是某屬性通過串行化Json數(shù)據(jù)異常??赡苣悴欢?,意思是這樣的,struts2的action里面的數(shù)據(jù)轉(zhuǎn)換成json數(shù)據(jù)時是將提供了getter的屬性都統(tǒng)統(tǒng)串行化輸出JSON到客戶端。有的時候,很多屬性并不一定要串行化成json數(shù)據(jù)。比如:使用的spring注入屬性recordService,也就是提供了getter和setter!
所以解決這個異常方法就是在不需要串行化的屬性的設(shè)置JSON前加上annotation, 就是@JSON(serialize=false)
- function showJSON() {
- var user =
- {
- "username":"andy",
- "age":20,
- "info": { "tel": "123456", "cellphone": "98765"},
- "address":
- [
- {"city":"beijing","postcode":"222333"},
- {"city":"newyork","postcode":"555666"}
- ]
- }
- alert(user.username);
- alert(user.age);
- alert(user.info.cellphone);
- alert(user.address[0].city);
- alert(user.address[0].postcode);
- user.username = "Tom";
- alert(user.username);
- }