json返回[object object],而不是实际数据
我已经参考了许多关于堆栈溢出和其他站点的问题来寻求解决方案。但无论在哪里我都得到了不完整的答案。一些答案是将json数据记录到控制台。所以我尝试了一下,在那里我得到了正确的json对象。但当我将其添加到HTML或警报时,它会显示[object] 这个问题有很多重复的地方,但我还是不明白问题是什么? 这是到目前为止我的代码json返回[object object],而不是实际数据,json,Json,我已经参考了许多关于堆栈溢出和其他站点的问题来寻求解决方案。但无论在哪里我都得到了不完整的答案。一些答案是将json数据记录到控制台。所以我尝试了一下,在那里我得到了正确的json对象。但当我将其添加到HTML或警报时,它会显示[object] 这个问题有很多重复的地方,但我还是不明白问题是什么? 这是到目前为止我的代码 $(document).click(function () { $.ajax({ type: "POST", u
$(document).click(function () {
$.ajax({
type: "POST",
url: "/members/ListOfAllOppositeTypeUsersWithTheirRespectiveData?LoggedInUserOppositeType=2",
dataType: 'json',
success: function (json) {
console.log(json);
//var strJson = JSON.stringify(json);
$.each(json, function (key, value) {
$('#AllowedFriends').append($('<option value="'+ key + '">' + value + '</option>'));
});
},
error: function () {
alert("F");
}
});
});
一个对象可以包含实际数据,问题是什么?我建议您使用开发者控制台或Firebug查看浏览器中的网络调用,以查看接收到的对象。然后jQuery将字符串解析为一个对象,以便您可以使用数据。尝试
console.log(eval(“(“+json+”)”)代码>您应该尝试以下方法:
$.each(json, function (index, obj) {
$('#AllowedFriends').append($('<option value="'+ obj.MemberId + '">' + obj.Name + '</option>'));
});
$。每个(json,函数(索引,obj){
$('#AllowedFriends')。追加($(''+obj.Name+'');
});
JSON对象是一个对象。对字符串调用$.each()是行不通的。发布您返回的对象的示例,我们可以帮助您访问它。我是否应该发布在Console.log中获得的值?显示实际响应正文的任何内容。我已编辑了问题。此回答假设响应是一个数组,而不是包含数组的对象。在开发人员控制台中,数组响应将包含在括号[]中。对象响应将被括在大括号{}中。因此,这里有一个对象数组。$。each()迭代数组,将索引和数组元素传递给提供的函数。在您的例子中,该数组元素是一个对象。
$.each(json, function (index, obj) {
$('#AllowedFriends').append($('<option value="'+ obj.MemberId + '">' + obj.Name + '</option>'));
});