System.Json 中的错误?

发布于 2024-12-12 02:52:22 字数 443 浏览 0 评论 0原文

重现代码:

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 中修复。检查下面我的答案中的链接。

Code to reproduce:

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=\"\"/>"

The version of my System.Json.dll is 2.0.5.0. Is it a bug? And what's the solution?

Aug 2015 UPDATE: It's a bug and already fixed in MONO. Check the link in my answer below.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮云落日 2024-12-19 02:52:22

事实证明,这是 单声道。 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;

报告给单声道团队。

It's proved to be a bug in the assembly System.Json of Mono. JsonValue.cs line 218 & 219 in the method string DoEscapeString (StringBuilder sb, string src, int cur).

Original:

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

Fixed:

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

reported to mono team.

一紙繁鸢 2024-12-19 02:52:22

If you want to get <a href=\"\"/> as an output, use string parameter for the constructor like this:

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

or

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文