从 json 响应中获取键值

Getting key value from json response

试图获取键值 returns null,但它 returns 所有数据都采用 json 格式。响应在下方添加为图片

   $("#txtbox").autocomplete({
                    source: function (request, response) {
                        $.ajax({
                            type: "POST",
                            contentType: "application/json; charset=utf-8",
                            url: "url.aspx/GetData",
                            data: "{'Prefix':'" + request.term + "'}",
                            dataType: "json",
                            success: function (data) {
                                $.each(data, function (i, field) {
                                    var data = JSON.stringify(data);
                                    console.log(data.diagnosisdesc);
                                });

                            },
                            error: function (result) {
                                alert("Error");
                            }
                        });
                    },
                    minLength: 3
                });

服务器的响应有一个对象:d;该对象是一个数组,因此您需要遍历该数组,然后遍历每个数组值。每个数组值都将包含一个对象,因此您可以根据需要使用 jQuery 函数 $.each 循环这些对象(避免使用 hasOwnProperty 过滤迭代对象)。

根据 jQuery UI 插件,您需要将数组传递给 response 回调。数组的每个值必须是包含两个属性的对象:valuelabel,因此您需要 map 服务器的响应以创建数组并将其传递给 response回调。如插件页面中所述,您还需要将一个值传递给回调以防出错。在本例中是一个空数组。

$("#txtbox").autocomplete({
        source: function (request, response) {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "url.aspx/GetData",
                data: "{'Prefix':'" + request.term + "'}",
                dataType: "json",
                success: function (data) {
                    response($.map(data.d, function(value) {
                        return {
                            label: value.diagnosisdesc,
                            value: value. diagnosisdesc + '//' + value.diagnosiscode
                        };
                    }));
                },
                error: function (result) {
                    response([]);
                    alert("Error");
                }
            });
        },
        minLength: 3
    });