gpt4 book ai didi

java - 为什么这个 JSON 字符串无效? jQuery.parseJSON 函数抛出无效字符

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:57 25 4
gpt4 key购买 nike

当尝试解析 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"}

SERVLET 代码

.... 

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

最佳答案

该错误是因为 $.post 方法已经检测到 JSON 响应并将结果解析为对象。然后,您尝试对对象而不是 JSON 字符串调用 parseJSON,这会导致您看到的错误。您只需删除对 $.parseJSON 的调用即可。试试这个:

function updateProgrammerDetails(site, Id) {
$.post('EngineAdminServlet', {
action: "updateProgrammerMenu",
siteDetails: site,
ID: Id,
}, function(data, status) {
var pid, name, sky, ip, eleven;
// work with the object in 'data' here, E.g:
console.log(data.ID, data.siteName); // = 123, 'VEGAS'
}).fail(function(error) {
alert("Error retrieving details from server");
}); //end ajax call
}

关于java - 为什么这个 JSON 字符串无效? jQuery.parseJSON 函数抛出无效字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34858984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com