我有一个servicestack POCO对象

public class SiteCalendarItem
{
    [DataMember(Name = "title")]
    public string Title { get; set; }
    [DataMember(Name = "start")]
    public string StartD { get; set; } //DateTime
    [DataMember(Name = "end")]
    public string EndD { get; set; }
    /***/

}

当调用webservice时,它作为JSON对象返回

public object Get(GetFullCalendarRequest request)
{
    CalendarItemList tmp = new CalendarItemList();
    return new GetFullCalendarResponse { Result = tmp.ReturnObject() };
}

这将返回一个包含日历对象数组的对象.

{"Result":[{"title":"test 1","start":"2019-09-08","end":"2019-09-10"}]}

我想把它作为一个使用"Fullcalendar"插件的网站的提要.

[{"title":"All Day Event","start":"2022-05-01"},{"title":"Long Event","start":"2022-05-07","end":"2022-05-10"},{"groupId":"999","title":"Repeating Event","start":"2022-05-09T16:00:00+00:00"}]

这是一个"固定"事件提要(事件:'http://127.0.0.1:8089/GetFullCalendar?format=json'),我怀疑我无法传递配置参数.

那么,如何确保Servicestack服务不返回带有数组的对象,而是直接返回数组?

我做了谷歌作业(job),但除非我错过了,否则(对我来说)这并不简单.

推荐答案

您可以只返回裸数组,例如:

public object Get(GetFullCalendarRequest request) => 
    new CalendarItemList().ReturnObject();

我还建议使用以下内容注释API返回给客户端的内容:

public class GetFullCalendarRequest : IReturn<SiteCalendarItem[]> { ... }

Json相关问答推荐

使用Shell深入挖掘到最低的SON元素

将嵌套的json中的字符串强制转换为数字

对面的行/列进行排序时可能出现错误

如何判断响应数组是否存在以及S是否有其他内容...?

Powershell解析JSON文件中的键或值

具有 (RegEx) 模式的 json-schema 中的枚举

打印与 JSON 和 PowerShell 中的模式匹配的子项的父项名称

Golang gin接收json数据和图片

无法使用 vue.js 访问 JSON 数组的项目

Golang 解组行为:字段过多?

用powershell条件解析json文件的数组对象

如何使用 LINQ 在 C# 中重构对象?

Jackson Json:如何将数组转换为 JsonNode 和 ObjectNode?

json和空数组

如何自动修复无效的 JSON 字符串?

区分字符串和列表的 Pythonic 方式是什么?

as_json 没有在关联上调用 as_json

使用 application/json 优于 text/plain 的优势?

Django:TypeError:[] 不是 JSON 可序列化的为什么?

log4j 支持 JSON 格式吗?