System.Json中的一个错误?

时间:2011-10-24 05:43:49

标签: c# json mono

重现的代码:

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月更新:这是一个错误,已在MONO中修复。请查看我在下面的答案中的链接。

2 个答案:

答案 0 :(得分:2)

它被证明是Mono的程序集System.Json中的一个错误。 JsonValue.cs第218行&amp;方法string DoEscapeString (StringBuilder sb, string src, int cur)中的219。

原件:

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

修正:

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

向单声道队报道。

答案 1 :(得分:1)

如果要将<a href=\"\"/>作为输出,请使用字符串参数作为构造函数,如下所示:

@"<a href=\""\""/>"

"<a href=\\\"\\\">"

并阅读http://msdn.microsoft.com/en-us/library/362314fe(v=VS.100).aspx