在ASP.NET MVC中将类序列化为单个JSON字符串
Serializing a class as a single JSON string in ASP.NET MVC
我有以下类
[Serializable]
public class ApiRequestStatus :IEquatable<ApiRequestStatus>
{
public static readonly ApiRequestStatus Failure =
new ApiRequestStatus("Failure");
public static readonly ApiRequestStatus Success =
new ApiRequestStatus("Success");
private string _status;
private ApiRequestStatus(string status)
{
this._status = status;
}
public override string ToString()
{
return _status;
}
public bool Equals(ApiRequestStatus other)
{
return this._status == other._status;
}
}
当使用System.Web.Script.Serialization.JavaScriptSerializer
序列化时,我希望它序列化为字符串"Failure"
或"Success"
。
我尝试过实现一个自定义的JavaScriptConverter
,但这会将我的对象呈现为一个具有零个或多个属性的对象,具体取决于我返回的IDictionary<string, object>
。
例如,当我返回并清空IDictionary<string, object>
时,我的对象显示为空JavaScript对象:{ }
。
如果我返回new Dictionary<string, object> { {"_status", status._status}}
,我的对象将显示为{ "_status" : "Success" }
。
如何将对象序列化为其_status
字段的字符串值
将ToJsonString()
方法添加到类中,并手动控制序列化-在本例中,直接序列化_status
成员。
对于所有其他/默认行为,只需序列化this
(这可以被继承以保持整洁)并返回它。
我通过将ApiRequestStatus
切换到枚举并将Json.NET
序列化程序与JsonConverter
属性结合使用来解决此问题,但我仍然有兴趣看看JavaScriptSerializer
是否可以做到这一点。
相关文章:
- Ajax发布表单序列化,发布引号'
- 序列化数据属性中对象的最可靠方法
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 为什么JSON.stringify没有序列化原型值
- 有没有一个Nodejs库可以序列化和反序列化命名组件的路径(比如URL路径名)
- 是否可以在javascript中反序列化java对象
- jQuery Ajax数组序列化错误
- 对象序列化,JAVA,Javascript
- 在jquery中以序列化的形式传递额外的paparameter
- 如何使用angularjs序列化对象
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- javascript中是否有更标准化的方法来转换(序列化)非表单数据以与ajax一起使用
- 在html标记中序列化javascript代码
- 如何在C#中反序列化json对象
- jQueryAJAX-将额外的键/值对推送到序列化的$_POST数组中
- 使用JSON序列化图论树的解决方法
- PHP未从AJAX接收序列化数据
- 如何序列化包括影子 DOM 在内的 HTML DOM
- 序列化表单时进行编码
- 序列化没有列的表'id'