1. 程式人生 > >Java後臺json傳到前臺出現"

Java後臺json傳到前臺出現"

情況是這樣的:

//將java物件轉成json字串放到session中
String jsonMenu =JSONObject.fromObject(sysMenu).toString();
session.setAttribute("sysMenu",jsonMenu );

然後前臺從session中得到這個json物件,然後將資料繫結到對應的容器。 但是突然發現並沒有出現預期的繫結成功,然後在瀏覽器端控制檯輸出了下前臺拿到的json物件,發現他變成了這樣:

{"msg":"OK","data":[{"resourceId":"0","resurl":"","flag":"1","isParent":0,"icon":"","description":"","sort":1,"resname":"系統設定","type":"0","parentId":"","rescode":"menu","cdate":{"date":20,"hours":21,"seconds":48,"month":7,"timezoneOffset":-480,"year":118,"minutes":11,"time":1534770708000,"day":1},"mdate":{"date":20,"hours":21,"seconds":50,"month":7,"timezoneOffset":-480,"year":118,"minutes":11,"time":1534770710000,"day":1},"sysResources":[{"resourceId":"1","resurl":"/admin/sysUser","flag":"1","isParent":0,"icon":"","description":"使用者","sort":1,"resname":"使用者管理","type":"1","parentId":"0","rescode":"sysUser-list","cdate":{"date":20,"hours":21,"seconds":8,"month":7,"timezoneOffset":-480,"year":118,"minutes":43,"time":1534772588000,"day":1},"mdate":{"date":5,"hours":0,"seconds":32,"month":7,"timezoneOffset":-480,"year":118,"minutes":53,"time":1533401612000,"day":0},"sysResources":[]},{"resourceId":"2","resurl":"/admin/sysRole","flag":"1","isParent":0,"icon":"","description":"角色","sort":2,"resname":"角色管理","type":"1","parentId":"0","rescode":"sysRole-list","cdate":{"date":20,"hours":21,"seconds":14,"month":7,"timezoneOffset":-480,"year":118,"minutes":12,"time":1534770734000,"day":1},"mdate":{"date":5,"hours":0,"seconds":43,"month":7,"timezoneOffset":-480,"year":118,"minutes":53,"time":1533401623000,"day":0},"sysResources":[]},{"resourceId":"3","resurl":"/admin/sysResource","flag":"1","isParent":0,"icon":"","description":"許可權","sort":3,"resname":"許可權管理","type":"1","parentId":"0","rescode":"sysResource-list","cdate":{"date":20,"hours":21,"seconds":18,"month":7,"timezoneOffset":-480,"year":118,"minutes":12,"time":1534770738000,"day":1},"mdate":{"date":5,"hours":0,"seconds":59,"month":7,"timezoneOffset":-480,"year":118,"minutes":53,"time":1533401639000,"day":0},"sysResources":[]},{"resourceId":"8142A1BC54E345BF99095847E8D17E66","resurl":"/admin/sysLog","flag":"1","isParent":0,"icon":"ss","description":"日誌","sort":4,"resname":"日誌管理","type":"1","parentId":"0","rescode":"sysLog-list","cdate":{"date":22,"hours":20,"seconds":19,"month":7,"timezoneOffset":-480,"year":118,"minutes":33,"time":1534941199000,"day":3},"mdate":{"date":22,"hours":20,"seconds":19,"month":7,"timezoneOffset":-480,"year":118,"minutes":33,"time":1534941199000,"day":3},"sysResources":[]},{"resourceId":"E13A6C41CE3B42468AFAE57D7BBC2F20","resurl":"/admin/appUser","flag":"1","isParent":0,"icon":"無","description":"app使用者管理","sort":20,"resname":"app使用者管理","type":"1","parentId":"0","rescode":"appUser-list","cdate":null,"mdate":{"date":27,"hours":15,"seconds":38,"month":7,"timezoneOffset":-480,"year":118,"minutes":54,"time":1535356478000,"day":1},"sysResources":[]}]},{"resourceId":"F901703D395D4BDEBC739BB56D48EE5B","resurl":"","flag":"1","isParent":0,"icon":"menu","description":"綜合業務","sort":2,"resname":"綜合業務","type":"0","parentId":"","rescode":"menu","cdate":{"date":23,"hours":11,"seconds":26,"month":7,"timezoneOffset":-480,"year":118,"minutes":29,"time":1534994966000,"day":4},"mdate":{"date":23,"hours":11,"seconds":26,"month":7,"timezoneOffset":-480,"year":118,"minutes":29,"time":1534994966000,"day":4},"sysResources":[{"resourceId":"24C5B73EA9F0400EA47EE35CEE6383C8","resurl":"/admin/sysBlog","flag":"1","isParent":0,"icon":"日誌管理","description":"日誌管理","sort":12,"resname":"日誌管理","type":"1","parentId":"F901703D395D4BDEBC739BB56D48EE5B","rescode":"sysBlog-list","cdate":null,"mdate":{"date":28,"hours":11,"seconds":37,"month":7,"timezoneOffset":-480,"year":118,"minutes":49,"time":1535428177000,"day":2},"sysResources":[]},{"resourceId":"50C5E3BBC2B24EBBB921260F6C57D7DF","resurl":"/admin/appTopic","flag":"1","isParent":0,"icon":"appTopic","description":"話題管理","sort":27,"resname":"話題管理","type":"1","parentId":"F901703D395D4BDEBC739BB56D48EE5B","rescode":"appTopic-list","cdate":{"date":27,"hours":14,"seconds":27,"month":7,"timezoneOffset":-480,"year":118,"minutes":32,"time":1535351547000,"day":1},"mdate":{"date":27,"hours":14,"seconds":27,"month":7,"timezoneOffset":-480,"year":118,"minutes":32,"time":1535351547000,"day":1},"sysResources":[]},{"resourceId":"64AEEA6955454A52BDBCB56092346F05","resurl":"/admin/sysCarousel","flag":"1","isParent":0,"icon":"輪播/廣告管理","description":"輪播/廣告管理","sort":12,"resname":"輪播/廣告管理","type":"1","parentId":"F901703D395D4BDEBC739BB56D48EE5B","rescode":"sysCarousel-list","cdate":{"date":28,"hours":20,"seconds":58,"month":7,"timezoneOffset":-480,"year":118,"minutes":53,"time":1535460838000,"day":2},"mdate":{"date":28,"hours":20,"seconds":58,"month":7,"timezoneOffset":-480,"year":118,"minutes":53,"time":1535460838000,"day":2},"sysResources":[]},{"resourceId":"6841FEE822F34D71BB262E1BC1212863","resurl":"/admin/appTheme","flag":"1","isParent":0,"icon":"aa","description":"主題管理","sort":28,"resname":"主題管理","type":"1","parentId":"F901703D395D4BDEBC739BB56D48EE5B","rescode":"appTheme-list","cdate":{"date":28,"hours":11,"seconds":3,"month":7,"timezoneOffset":-480,"year":118,"minutes":49,"time":1535428143000,"day":2},"mdate":{"date":28,"hours":11,"seconds":3,"month":7,"timezoneOffset":-480,"year":118,"minutes":49,"time":1535428143000,"day":2},"sysResources":[]},{"resourceId":"F2EC9391B0194BC68D76756C14CE3ACD","resurl":"/admin/appReport","flag":"1","isParent":0,"icon":"aa","description":"舉報管理","sort":28,"resname":"舉報管理","type":"1","parentId":"F901703D395D4BDEBC739BB56D48EE5B","rescode":"appReport-list","cdate":null,"mdate":{"date":30,"hours":11,"seconds":31,"month":7,"timezoneOffset":-480,"year":118,"minutes":41,"time":1535600491000,"day":4},"sysResources":[]},{"resourceId":"FAB41C77A348464695C8B34778068F8B","resurl":"/admin/sysReview","flag":"1","isParent":0,"icon":"review","description":"評論管理","sort":12,"resname":"評論管理","type":"1","parentId":"F901703D395D4BDEBC739BB56D48EE5B","rescode":"sysReview-list","cdate":{"date":27,"hours":10,"seconds":19,"month":7,"timezoneOffset":-480,"year":118,"minutes":47,"time":1535338039000,"day":1},"mdate":{"date":27,"hours":10,"seconds":19,"month":7,"timezoneOffset":-480,"year":118,"minutes":47,"time":1535338039000,"day":1},"sysResources":[]}]}],"status":200}

什麼意思呢 ? 就是原來的雙引號被預設轉成了"這個標籤,也就是用html解釋了雙引號,這裡的原理我並不清楚,解決是解決了,但是感到治標不治本,所以將這個問題記錄下來,瞭解的歡迎留言,謝謝了。 想到一個暫時的解決辦法就是利用JS字串的替換,將"替換成雙引號就可以了。

//這個resData就是後臺傳過來的json字串,這裡用因為JS沒有replaceAll方法,
所以在加了個/g代表全域性匹配,就是代表replaceAll,想了解的同學自己去查詢
resData=resData.replace(/"/g,"\"");
//另外由於上面的是json字串,並不能像物件那樣利用它的屬性和方法,需要
利用JS內建的解析方法將json字串轉換成json物件
resData=JSON.parse(resData);

最後,問題成功解決,資料繫結成功。