- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 javascript 和 jQuery 相当陌生。我很确定我在这里缺少一些简单的东西。下面的代码将输出:
[{
"cli_surname":"\u0392\u03bf\u03bd\u03b1\u03c0\u03ac\u03c1\u03c4\u03b7\u03c2",
"cli_name":"\u039d\u03b1\u03c0\u03bf\u03bb\u03ad\u03c9\u03bd",
"cli_sex":"M",
"cli_dob":"1769-08-15",
"cli_insurance":"1",
"cli_phone":"9999999999",
"cli_mobile":"9999999999",
"cli_email":"bonaparte@hotmail.com",
"cli_address":"\u0392\u03b1\u03c4\u03b5\u03c1\u03bb\u03ce 18",
"ct_name":"\u0391\u03b3\u03af\u03b1 \u0392\u03b1\u03c1\u03b2\u03ac\u03c1\u03b1",
"cli_comments":"\u039c\u03ad\u03b3\u03b1\u03c2"
}]
按照指示发送到 $("#userInfo")
但 jQuery.parseJSON 将失败。
$.ajax({
url: url,
type: "POST",
data: "c=" + selected.val(),
success: function (json) {
$("#userInfo").html(' ' + json);
var obj = jQuery.parseJSON( json );
alert( obj[0].cli_name );
},
error: function (xhr) {
$("#userInfo").html('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText);
}
});
现在,如果我从 $("#userInfo")
复制上述代码的输出并将其粘贴到名为“data”的新变量中并解析它,它就可以工作。
$.ajax({
url: url,
type: "POST",
data: "c=" + selected.val(),
success: function (json) {
$("#userInfo").html(' ' + json);
data = '[{"cli_surname":"\u0392\u03bf\u03bd\u03b1\u03c0\u03ac\u03c1\u03c4\u03b7\u03c2","cli_name":"\u039d\u03b1\u03c0\u03bf\u03bb\u03ad\u03c9\u03bd","cli_sex":"M","cli_dob":"1769-08-15","cli_insurance":"1","cli_phone":"9999999999","cli_mobile":"9999999999","cli_email":"bonaparte@hotmail.com","cli_address":"\u0392\u03b1\u03c4\u03b5\u03c1\u03bb\u03ce 18","ct_name":"\u0391\u03b3\u03af\u03b1 \u0392\u03b1\u03c1\u03b2\u03ac\u03c1\u03b1","cli_comments":"\u039c\u03ad\u03b3\u03b1\u03c2"}]';
var obj = jQuery.parseJSON( data );
$("#userInfo").html(" " + data);
alert( obj[0].cli_name );
},
error: function (xhr) {
$("#userInfo").html('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText);
}
});
当对两个变量应用 typeof 时,结果是 string
。是什么赋予了?我如何可以解析 data
变量而不是 json
变量,因为它们都是字符串并且似乎包含相同的数据?
最佳答案
Ajax 调用将在内部为您进行解析。
所以,你的参数json
您的成功函数已经包含一个有效的 JavaScript 对象,这就是解析失败的原因:它是一个对象而不是字符串。
构造$("#userInfo").html(' ' + json);
然后将再次将 json 转换为字符串,这就是您在 div 中看到正确内容的原因。
更改:
$.ajax({
url: url,
type: "POST",
dataType: 'json', // this will force the response to be Json
// even if MIME-Type tells something different!
data: "c=" + selected.val(),
success: function (json) {
$("#userInfo").html(' ' + json);
// unnecessary var obj = jQuery.parseJSON( json );
alert( json[0].cli_name );
},
error: function (xhr) {
$("#userInfo").html('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText);
}
});
刚刚添加了 dataType,以便在本地覆盖响应的错误 MIME-Type header 。根据这个问题的第一个答案
关于javascript - jQuery.parseJSON 不起作用,除非复制到不同的字符串变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24570074/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!