繁体   English   中英

使用WebAPI 2的Breeze Json序列化

[英]Breeze Json Serialization using WebAPI 2

我对Breeze还是很陌生,并且正在从事客户端上的Breeze和服务器端上的ASP.NET Web API 2的项目。 我采用了Breeze网站( http://www.breezejs.com/documentation/web-api-controller )上列出的所有最佳实践。

但是我有一个问题是,为什么在序列化项目时每个数据节点都列出对象的.NET类型。 每当我得到包含大量记录的列表时,我可能会看到大多数数据是$ type实体,其中列出了完整的类命名空间和程序集名称。 对于每个数据节点,将重复此$ type实体,其代码为100的重复次数。

看起来更合乎逻辑,并且可以节省微风调用的有效负载,以执行类似于服务器端Xml序列化中的名称空间的操作。 可能在标头中列出完整的类签名,而对象在标头中仅具有指向完整定义的快捷方式。 如:

标头:

$typeFull: {
key: 'ABC',
namespace: 'ABCCompany.Data.Client.ViewModels.Customers'

数据:

$ id:1,$ typeKey:'abc',

这是返回微风的当前数据的示例:

[
{
$id: "1",
$type: "Assembly.Root, ABCCompany.Data.Client.ViewModels.Customers",
CustomerId: 1,
Name: "ABC Company",
LongDescription: "Describe me! Describe me! Describe me! Describe me! Describe me! Describe me! Describe me! Describe me! Describe me!  Describe me! Describe me! Describe me! Describe me! Describe me! Describe me! Describe me! Describe me!",
Phone: "800-555-1212",
PrimaryContactName: "Bugs Bunny",
AddressId: 1,
Address: {
$id: "2",
$type: "Assembly.Location, ABCCompany.Data.Client.ViewModels.Customers.Addresses",
AddressLine1: "2600 Red Box Blvd",
AddressLine2: null,
City: "Anaheim",
StateId: 35,
Zip: "44122",
CountryCode: "US",

我不在轻柔的开发团队中,所以我无法为他们回答,但是这是我的2美分:

实际上,冗余信息并不重要,因为数据将被压缩。 这是确保json被压缩的方法(假设您使用的是IIS):

http://benfoster.io/blog/aspnet-web-api-compression

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM