Cod*_*ute 2 c# rest ienumerable json
为Web API 2编写了一个简单的函数,它返回了国家/地区列表.它返回有效的Json格式,但没有数组/对象名称.我有点难以理解这是如何实现的?
这是我的C#代码:
[Route("Constants/CountryList")]
[HttpGet]
public IHttpActionResult GetCountryList()
{
IEnumerable<ISimpleListEntity> list = new CountryStore().SimpleSortedListByName();
if (list == null || !list.Any())
{
return NotFound();
}
return Ok(list);
}
Run Code Online (Sandbox Code Playgroud)
ISimpleListEntity接口代码在这里.
public interface ISimpleListEntity
{
int Id { get; set; }
string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
此服务返回以下Json输出(没有对象/数组名称):
[
{
"Id":1,
"Name":"[Select]"
},
{
"Id":4,
"Name":"India"
},
{
"Id":3,
"Name":"Singapore"
},
{
"Id":2,
"Name":"United Arab Emirates"
}
]
Run Code Online (Sandbox Code Playgroud)
但是,我正在努力实现以下Json格式(使用名为'CountryList'的对象/数组名称):
{
"CountryList":[
{
"Id":1,
"Name":"[Select]"
},
{
"Id":4,
"Name":"India"
},
{
"Id":3,
"Name":"Singapore"
},
{
"Id":2,
"Name":"United Arab Emirates"
}
]
}
Run Code Online (Sandbox Code Playgroud)
您可以根据Boas的答案为此创建一个特定的类,或者只使用匿名类型:
return Ok(new { CountryList = list });
Run Code Online (Sandbox Code Playgroud)
基本上,您需要具有适当属性的对象,无论是哪种方式.如果你想稍后反序列化并保持编译时检查,那么创建一个类是值得的 - 但如果你要么使用动态类型,要么消费者不会是C#代码,那么匿名类型会更简单.
| 归档时间: |
|
| 查看次数: |
1037 次 |
| 最近记录: |