我在服務器端編碼了JSON(使用ESAPI編碼器)。客戶端然後檢索bean的字段並進行進一步處理。使用ESAPI編碼器編碼JSON
在服務器端
JSONBean bean=new JSONBean();
//populate the bean
Gson gson=new Gson();
String jsonString = gson.toJson(bean);
String JSEscapedStr=ESAPI.encoder().encodeForJavaScript(jsonString);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(JSEscapedStr);
編碼的JSON字符串
\ x7B \ x22name \ X22 \ X3A \ x22Sameer \ X22 \ x22company \ X22 \ X3A \ x22Company \ X22 \ x22designation \ X22 \ X3A \ x22Developer \ X22 \ x7D
在客戶端
var JSONObj=JSON.parse(data);
var name=JSONObj["name"];
var company=JSONObj["company"];
var designation=JSONObj["designation"];
//process these variable in javascript
我也使用response.se嘗試tContentType( 「普通/文本」);在服務器端也沒有工作。
錯誤
語法錯誤:JSON.parse:位於第1行的JSON數據的第1列時內容類型是「普通/文本」
如果我硬代碼JSON字符串然後它工作
意外的字符 var jsonEncoded="\x7B\x22name\x22\x3A\x22Sameer\x22,\x22company\x22\x3A\x22Company\x22,\x22designation\x22\x3A\x22Developer\x22\x7D";
var JSONObj=JSON.parse(jsonEncoded);
console.log(JSONObj);
var name=JSONObj["name"];
var company=JSONObj["company"];
var designation=JSONObj["designation"];
console.log(name);
console.log(company);
console.log(designation);
獲取代理工具,如Firefox的TamperData擴展或獲取OWASP的ZAP工具的副本,並捕獲服務器的響應並將其添加到此處。 – avgvstvs 2014-12-19 13:55:34
如果您回答了您自己的問題,請發佈答案,或者請提供所需的信息。 – avgvstvs 2015-01-05 18:30:38