JSON 返回未定义
JSON Returning Undefined
我一直在尝试通过jQuery/AJAX读取JSON,但到目前为止,它一直返回未定义。
$.ajax({
type: "POST",
url: "php/ajax/retrieve.php",
dataType: "json",
success: function(data) {
console.log(data);
$("#items").html(data);
$.each(data, function(key, val) {
console.log(key + ' ' + val);
$("#items").append(''
<div class="item-section" id="' + key + '">'
<div class="item">'
<h3>' + val.current_status + '</h3>'
</div>'
</div>'
');
});
}
});
在控制台内部,迭代中日志的输出如下所示,但是当我尝试在HTML中添加val.current_status时,它只是说"未定义":
0 {"id":"4","creation_date":"15 Jan 2015 - 07:32 AM","current_status":"Pending", [... and so on]
任何帮助,不胜感激。
如果您的控制台输出" {"id":"4","creation_date":"15 Jan 2015 - 07:32 AM","current_status":"Pending"...
",那么您的"对象"是一个字符串,而不是 JSON 对象。查看下面的示例。您应该在控制台窗口中看到" [object Object]
"。
我的猜测是,您的服务器在某个时候不小心将 JSON 转换为字符串值,并带有转义的引号等。也许您以某种方式调用了 JSON 序列化程序两次?
这就是您不应尝试在控制台中将数据转换为字符串的原因。你把它想象成一个 C 控制台,其中所有内容都必须是一个字符串才能理解它。浏览器控制台比这更智能,更具交互性......您应该输出实际值,以便您可以看到其类型并使用属性等:
console.log( key, val );
var key = 0,
val_str = "{'"id'":'"4'",'"creation_date'":'"15 Jan 2015 - 07:32 AM'",'"current_status'":'"Pending'"}",
val_obj = {"id":"4","creation_date":"15 Jan 2015 - 07:32 AM","current_status":"Pending"};
$( '#str' ).text( key + ' ' + val_str );
$( '#obj' ).text( key + ' ' + val_obj );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="str"></div>
<div id="obj"></div>
迭代对象数组
$.each(data, function(i, val) {
$.each(val, function(k, v) {
// do something
});
});
相关文章:
- 这.SOMETHING 总是返回未定义的 - extjs
- React+Meteor:this.ops返回未定义
- "日期“;AJAX请求返回的类型值未定义
- Regex提取URL返回数组的一部分;未定义”;
- 换行符拆分返回“”;未定义”;
- 解析-为什么user.getSessionToken()返回未定义的结果
- Javascript函数返回未定义
- JavaScript-获取数据属性的值返回未定义的值
- .val()返回未定义的.text返回随机代码
- 为什么innerHTML返回“未定义”
- "这个“;正在返回未定义的
- 函数jquery的未定义返回
- 为什么typeof的数组的数组的未定义值返回为“0”;未定义的“;我的条件不认为是真的
- winJS 从函数未定义返回 var
- $.get jquery 中的未定义返回
- Javascript 函数未定义返回
- 数据 ID 一直未定义返回
- 函数调用Javascritpt的未定义返回值
- 在函数中提示未定义返回.(问题)范围
- JSON字符串的未定义返回