【发布时间】:2016-01-18 15:59:43
【问题描述】:
当试图解析我的 Serlvet 返回到我的 JSP 页面的 JSON 时,以下代码行抛出了一个无效字符异常:
var obj = jQuery.parseJSON(data);
客户端代码
<script type = "text/javascript">
function updateProgrammerDetails(site, Id) {
$.post('EngineAdminServlet',
{
action: "updateProgrammerMenu",
siteDetails: site,
ID: Id,
},
function(data, status){
var pid, name, sky, ip, eleven;
var obj = jQuery.parseJSON(data);
.........
}
}).fail(function(error) {
alert("Error retrieving details from server");
}); //end ajax call
}
</script>
使用 GSON 生成的 JSON 字符串
我在我的 Servlet 类中导入了 GSON 库,以便将我的 Java 对象“ProgrammerForJSP”转换为 JSON 字符串。这是在其他帖子中推荐的,以避免在自己创建 JSON 字符串时出现任何拼写错误。这是它返回的字符串:
{"ID":123,"siteName":"VEGAS","skyl":"WZ0019","ipAddress":"0.0.0.0","code":"L/BEG"}
服务代码
....
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
String gson = new Gson().toJson(myObject);
response.getWriter().write(gson);
} //end of method
我不知道我是错过了一步还是做错了什么?我的想法是 IP 地址字段可能会抛出解析器并破坏代码(因此是无效字符异常),因为它包含句点字符?我真的不知道。
编辑 我正在使用 jquery-1.11.3.js
【问题讨论】:
-
对不起@rory 这是一个匆忙的帖子,所以我可能没有很好地解释。我已经向我的 servlet 发布了一个 ID 以及来自我的 JSP 页面的一些其他属性,这些属性随后用于在 servlet 上创建一个对象。然后使用 Gson 将该对象解析为 JSON 字符串,以便我可以从该对象获取一些属性,并在它返回时填充我的 JSP 页面上的一些字段。但是,这是发生错误的时候:当我试图解析回 JSP 页面上的一个对象时,它会抛出无效字符异常,所以我不能遍历我的对象以从中获取值......
标签: java jquery json jsp servlets