C# 从返回的JSON字符串中删除斜杠和引号
我使用下面的代码将模型类转换为JSON数据C# 从返回的JSON字符串中删除斜杠和引号,c#,json,asp.net-mvc-3,jsonserializer,datacontractjsonserializer,C#,Json,Asp.net Mvc 3,Jsonserializer,Datacontractjsonserializer,我使用下面的代码将模型类转换为JSON数据 [DataContract] public class EventList { [DataMember(Name = "success")] public int success; [DataMember(Name = "result")] public List<CalendarEvent> Result; } [DataContract] public class CalendarEvent {
[DataContract]
public class EventList
{
[DataMember(Name = "success")]
public int success;
[DataMember(Name = "result")]
public List<CalendarEvent> Result;
}
[DataContract]
public class CalendarEvent
{
[DataMember(Name = "id")]
public int Id {get;set; }
[DataMember(Name = "title")]
public string Title { get; set; }
[DataMember(Name = "url")]
public string Url { get; set; }
[DataMember(Name = "class")]
public string EventClass { get; set; }//event-warning event-success event-special event-important event-inverse
[DataMember(Name = "start")]
public long StartTime { get; set; }
[DataMember(Name = "end")]
public long EndTime { get; set; }
}
EventList model = new EventList();
//Load data
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(EventList));
ser.WriteObject(stream1, model);
stream1.Position = 0;
StreamReader sr = new StreamReader(stream1);
string json_data= sr.ReadToEnd();
那么我怎样才能摆脱前斜杠呢。问题不在于序列化为JSON并显示自定义属性,而在于从响应中删除斜杠
直接返回模型而不是解析的JSON是一种方法,但在我的例子中,CalendarEvent类中有一个属性名“class”,我无法修改它,因为我使用的插件[]要求这样的结构
所以我必须使用JSON序列化
那么,我如何才能消除这个正斜杠和不需要的引号问题呢?您需要让asp.net-mvc-3使用
DataContractJsonSerializer
,而不是返回字符串。为此,返回一个自定义的ActionResult
,如下所示:另外,尽管我不建议使用它,但您可以使用名为class
by的属性,即public string@class{get;set;}
。
//"{\"result\":[{\"class\":\"event-warning\",\"