我有下面的類序列化類作爲一個單一的JSON字符串在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
字段?
不能說它是否工作,但你可以嘗試使用「公共靜態隱式運算符字符串(ApiRequestStatus apiRs){返回apiRs._狀態}」。這應該至少使你能夠做到「string s = apiRequestStatusObj;」然後「s」應包含狀態。 (隱式運算符應該在你的課堂上) – Joakim
@Joakim不幸的是沒有任何效果。歡呼 –