gpt4 book ai didi

javascript - 使用 Web API Get() 正确格式化 JSON

转载 作者:行者123 更新时间:2023-12-03 11:34:13 31 4
gpt4 key购买 nike

在我的 Web Api 项目中,我使用参数化方法,而不是按方法名称调用。我在我的 Angular 代码中使用 $resource 并且这个调用工作完美。

例如,这会给我一个联系人列表:

public class LeadsController : ApiController
{
public IEnumerable<Contact> Get()
{
var contacts = new ContactRepository();

return contacts.BuildContacts();
}
}

我遇到的唯一问题是大小写,所以我使用 newtonsoft 并且必须将返回类型更改为字符串才能正常工作

public class LeadsController : ApiController
{
public string Get()
{
var contacts = new ContactRepository();
var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };

return JsonConvert.SerializeObject(contacts, Formatting.Indented, settings);
}
}

现在我遇到的问题是 Angular 需要一个数组,但它返回一个对象(字符串),所以我遇到了错误。这是我的 Angular

return $resource('http://localhost:33651/api/Leads/', {
get: { method: 'GET', isArray: false },
query: {
method: 'GET',
isArray: true
}
});

在我的 web api 方法上有没有办法可以返回 IEnumerable 并正确地将 Json 格式化为驼峰式大小写?我应该怎样处理我的情况?

感谢您的帮助

最佳答案

Web API 已经使用 Newtonsoft 序列化器,因此您只需配置它。将这些行添加到 WebApiConfig.Register方法:

    var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

并返回IEnumerable<Contact>而不是 string ,请看一下这个示例项目 https://github.com/maxbrodin/camel-case-serialization-webapi

已编辑

关于javascript - 使用 Web API Get() 正确格式化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26595857/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com