重现的代码:
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中修复。请查看我在下面的答案中的链接。
答案 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