servicestack-text,Json,Knockout.js,Mongodb .net Driver,Knockout Mapping Plugin,servicestack Text" /> servicestack-text,Json,Knockout.js,Mongodb .net Driver,Knockout Mapping Plugin,servicestack Text" />

用于为空列表输出空数组的serviceStack.Text.ToJson扩展方法选项<;T>;所有物

用于为空列表输出空数组的serviceStack.Text.ToJson扩展方法选项<;T>;所有物,json,knockout.js,mongodb-.net-driver,knockout-mapping-plugin,servicestack-text,Json,Knockout.js,Mongodb .net Driver,Knockout Mapping Plugin,servicestack Text,还有一点工作要做,所以请耐心听我说 我使用knockout来绑定一个嵌套很深的数据结构。当我从数据库(使用Mongo C#驱动程序从MongoDB)检索数据时,有一些嵌套属性(类型为List)未填充,返回为null。我正在使用ServiceStack.Text.ToJson扩展方法将此数据结构序列化为JSON,并将其传递给客户机,以便knockoutMapper将其转换为我的可观察viewModel。除了服务器上为空的列表属性之外,一切都进行得很顺利。因为它们到达客户机时带有一个空值,knock

还有一点工作要做,所以请耐心听我说

我使用knockout来绑定一个嵌套很深的数据结构。当我从数据库(使用Mongo C#驱动程序从MongoDB)检索数据时,有一些嵌套属性(类型为
List
)未填充,返回为null。我正在使用ServiceStack.Text.ToJson扩展方法将此数据结构序列化为JSON,并将其传递给客户机,以便knockoutMapper将其转换为我的可观察viewModel。除了服务器上为空的
列表
属性之外,一切都进行得很顺利。因为它们到达客户机时带有一个空值,knockoutMapper只是让它们成为可观察的,而不是可观察的。现在来回答问题。。。是否有任何方法可以告诉ServiceStack,我希望将任何类型为
List
的空属性序列化为空数组?我已经在JsConfig对象中找到了一个看起来可能有用但运气不好的设置。我是在JsConfig中遗漏了什么,还是应该在客户机的knockoutMapping中这样做


编辑:只是一个注释-这是一个附带项目,我正在学习3-4项新技术,我发现从Mongo检索JSON、使用C#驱动程序将其转换为POCO在服务器上使用、然后使用serviceStack将POCO序列化为JSON是多么荒谬。我计划用一个简单的JSON来改变这一点,但这对我来说是一个学习过程。

没有你想象的那么荒谬,而且基本上是标准实践。与MongoDB对话时,它不是JSON,而是BSON。您的API应该能够在客户端序列化JSON以外的其他格式。您是否尝试过声明默认值,例如空列表?这通常是其他语言实现的方式。我想我可以这样做,只要决定在哪里做最有意义——服务器端还是客户端。