Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
json返回[object object],而不是实际数据_Json - Fatal编程技术网

json返回[object object],而不是实际数据

json返回[object object],而不是实际数据,json,Json,我已经参考了许多关于堆栈溢出和其他站点的问题来寻求解决方案。但无论在哪里我都得到了不完整的答案。一些答案是将json数据记录到控制台。所以我尝试了一下,在那里我得到了正确的json对象。但当我将其添加到HTML或警报时,它会显示[object] 这个问题有很多重复的地方,但我还是不明白问题是什么? 这是到目前为止我的代码 $(document).click(function () { $.ajax({ type: "POST", u

我已经参考了许多关于堆栈溢出和其他站点的问题来寻求解决方案。但无论在哪里我都得到了不完整的答案。一些答案是将json数据记录到控制台。所以我尝试了一下,在那里我得到了正确的json对象。但当我将其添加到HTML或警报时,它会显示[object]

这个问题有很多重复的地方,但我还是不明白问题是什么? 这是到目前为止我的代码

$(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>'));
});