我正在进行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上推荐的所有方法。
答案 0 :(得分:3)
这比你想象的要简单得多,你不需要使用jsonSerializer。
您可以将方法更改为以下内容:
public List<string> GetEmails()
{
return db.Users.Select(e => e.email).ToList();
}
然后,如果客户端指定application/json
,则内容将以json的形式返回。
请注意上述情况,我 仅 发回电子邮件地址,而不是 完整 用户细节因为我非常怀疑你会想要以json的身份发送密码。