【问题标题】:Generating JSON request manually, returned HTML causing issues手动生成 JSON 请求,返回 HTML 导致问题
【发布时间】:2009-06-11 02:25:34
【问题描述】:

我手动生成我的 JSON,我什至用前面的反斜杠转义了引号。这给我带来了麻烦。

我返回的 HTML 类似于:

<div class="blah"><div class="a2">This is just a test!  I hope this work's man!</div></div>


string json = "MY HTML HERE";
json = json.Replace(@"""", @"\""");

除了双引号之外,还有什么可以替换的吗?

【问题讨论】:

    标签: asp.net-mvc json


    【解决方案1】:

    是的。根据JSON spec,一个有效的字符串值是'任何Unicode字符,除了"或\或控制字符。

    【讨论】:

      【解决方案2】:

      json 的字符串中是否有换行符?有时这会破坏许多浏览器。我通常把“改成\”,把\改成\,把cr/lf改成\n。根据 json.org,换行符不是 json 规范的一部分,但大多数 javascript 解释器都可以处理它。

      【讨论】:

        【解决方案3】:

        我认为这样做可以:

        json = json.Replace("\"", "\\\"");
        

        请发布更多详细信息,此代码在哪里?

        【讨论】:

        • 不应该是json.Replace("\"", "\\\"")吗?
        【解决方案4】:

        不要手动编码 JSON - 使用序列化器!

        string json = new System.Web.Script.Serialization.JavaScriptSerializer()
            .Serialize(html);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-19
          • 2013-04-23
          • 2017-03-12
          • 2023-04-05
          相关资源
          最近更新 更多