繁体   English   中英

访问JSON响应中的字段

[英]Accessing fields in a JSON response

我有一个这样定义的类:

// the Widget class has lots of properties I don't want to display
// so I use the displayWidget class to carry just what I want to display
public class displayWidget
{
    public string WidgetId {get; set;}
    public string Description {get; set;}

    public displayWidget(Widget widget)  
    {
        WidgetId = widget.WidgetId;
        Description = widget.Description;
    }
}

我有一个以以下内容结尾的ActionResult方法::

var widgets = new List<displayWidget>();
foreach (var widget in matchingWidgets)
{
    widgets.Add(new displayWidget(widget));
}
return Json(widgets);

我的问题是,我不知道如何访问ajax .done处理程序内部的WidgetId和Description属性:

.done(
    function(response) {
        $('#widgetSection').html('');
        var html = '';
        var jsonData = JSON.parse(response);
        $.each(jsonData, 
            function (index, element) 
            { 
                $('body').append($('<div>', { text: element.WidgetId })); 
                $('body').append($('<div>', { text: element.Description }));
            });
    }
)

.each函数内部应有什么输出WidgetId和Description?

您的ActionResult返回一个数组,请尝试:

element[0].WidgetId

这将返回第一个结果,如果需要,您可以轻松地遍历列表。

编辑

就像@StephenMuecke提到的那样,由于您已经在返回JSON数据,因此您无需在这里使用JSON.parse ,因此这样的循环就足以遍历结果:

.done(
    function(response) {
        $('#widgetSection').html('');
        $.each(response, function (index, element) { 
            $('body').append(
                $('<div></div>').text(element.WidgetId )
            )
        });
    }
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM