控制序列化ASP.Net Ajax对象上的属性名称

时间:2020-03-06 14:48:00  来源:igfitidea点击:

首先,我知道ASP.Net当前内置了两种"类型"的JSON序列化:我们可以使用JavaScriptSerializer类将对象序列化为JSON,也可以使用新的DataContractJsonSerializer类将对象转换为JSON。

如果使用JavaScriptSerializer()方法,则必须将类标记为Serializable()-如果使用DataContractJsonSerializer方法,则必须将类标记为DataContract(),并将属性标记为DataMembers()。

如果需要,可以为每个DataMembers指定一个NAME属性,因此当对该属性进行序列化/反序列化时,它将使用该名称。出于我的目的,我认为这对于使JSON不太"冗长"很有用。例如,我不是简单地将" UserID"声明为我的属性(并在我的JSON对象中重复它),而是想简单地使用" u"。线中的数据较少,等等。

这两个序列化引擎呈现了一些不同,并且我们只能将JavaScriptSerializer与ASP.Net Web / Script方法一起使用。这就是我的问题。

是否有等效的方法将属性名称设置为其他名称,严格用于使用常规JavaScriptSerializer进行序列化/反序列化的目的?

解决方案

不,没有。

假设使用这种技术,我们在UTF-8上可以节省40位的数据,这不值得我们失去睡眠。