2011-10-24 19 views
3

代碼重現:System.Json中的錯誤?

JsonPrimitive a = new JsonPrimitive("<a href=\"\"/>"); 
//or the same: JsonPrimitive a = new JsonPrimitive(@"<a href=""/>"); 
Console.WriteLine(a.ToString()); 
//or Console.WriteLine((string)a); 
//On the console screen I got: "<a href=\""/>" 
//Ideal: "<a href=\"\"/>" 

我System.Json.dll的版本是2.0.5.0。這是一個錯誤嗎?那麼解決方案是什麼?

2015年8月更新:這是一個bug,已經在MONO中修復。檢查我的答案下面的鏈接。

回答

2

它被證明是一個在裝配System.Json Mono錯誤。 JsonValue.cs行218 & 219中的方法string DoEscapeString (StringBuilder sb, string src, int cur)

原文:

sb.Append(src[i++]); 
    start = i; 

修正:

sb.Append(src[i]); 
    start = i + 1; 

報Mono團隊。