首先,我知道目前 ASP.Net 中内置了两种“类型”的 JSON 序列化:您可以使用 JavaScriptSerializer 类将对象序列化为 JSON,或者使用新的 DataContractJsonSerializer 类将对象转换为 JSON。
如果使用 JavaScriptSerializer() 方法,则必须将类标记为 Serializable() —— 如果使用 DataContractJsonSerializer 方法,则必须将类标记为 DataContract(),并将属性标记为 DataMembers()。
如果需要,您可以为每个 DataMembers 指定一个 NAME 属性,因此当属性被序列化/反序列化时,它会使用该名称。出于我的目的,我认为这有助于使 JSON 不那么“罗嗦”。例如,我不想将“UserID”声明为我的属性(并在我的 JSON 对象中重复使用它),而是简单地使用“u”。更少的数据传输等。
两个序列化引擎的渲染有点不同,您只能将 JavaScriptSerializer 与 ASP.Net Web/Script Methods 一起使用。这就是我的问题。
是否有一种等效的方法可以将属性名称设置为其他名称,严格用于使用常规 JavaScriptSerializer 进行序列化/反序列化?