如何使用linq将匿名对象列表转换为字符串数组,以便在ASP.NET MVC中使用Json Result进行返回

时间:2010-08-14 17:06:44

标签: asp.net-mvc json linq

我目前有一个图书对象列表如下:

public class Book()
{
    public int BookId { get; set; }
    public string Name { get; set; }
    public string Author { get; set; }
}

List<Book> books = BookRepository.SelectAll();

我想在我的action方法中通过Json Result返回一个字符串列表/作者数组。目前我已经完成了:

var result = books.Select(p => new { p.Author }).ToList();
return Json(new { authors = result });

但是,检查结果会产生以下JSON:

{
    authors: [
        { Author: "John" },
        { Author: "Gary" },
        { Author: "Bill" },
        { Author: "Ray" }
    ]
}

但是,我不希望每个作者都是JSON中的单独对象。我希望结果为:

{
    authors: ["John", "Gary", "Bill", "Ray"]
}

我如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

你试过了吗?

// this will return a List<string>
var result = books.Select(p => p.Author).ToList(); 
return Json(new { authors = result });