web api方法以json格式返回数据?

时间:2015-02-24 14:03:31

标签: asp.net json asp.net-mvc asp.net-web-api asp.net-web-api2

我正在进行web api调用,我希望控制器方法以json格式返回数据。

我使用的模型类是User.cs:

public partial class User
{
     public int UserID { get; set; }
     public string city { get; set; }
     public string email { get; set; }
     public string firstName { get; set; }
     public string lastName { get; set; }
     public string phone { get; set; }
     public string password { get; set; }
 }

我希望通过以下控制器方法以json格式返回所有用户的电子邮件数据。

public string GetUsers()
{
   IEnumerable<User> users = db.Users.ToList();
   var jsonSerialiser = new JavaScriptSerializer();
   var json = jsonSerialiser.Serialize(users);
   return json;
   //string json = JsonConvert.SerializeObject(users);
   //return json;
}

我得到的只是空的json,如:

[]

请帮忙。我已经介绍了stackoverflow上推荐的所有方法。

1 个答案:

答案 0 :(得分:3)

这比你想象的要简单得多,你不需要使用jsonSerializer。

您可以将方法更改为以下内容:

public List<string> GetEmails()
{
    return db.Users.Select(e => e.email).ToList();
}

然后,如果客户端指定application/json,则内容将以json的形式返回。

请注意上述情况,我 发回电子邮件地址,而不是 完整 用户细节因为我非常怀疑你会想要以json的身份发送密码。