代码之家  ›  专栏  ›  技术社区  ›  mberube.Net

如何解码json字符串中嵌入的HTML编码字符

  •  1
  • mberube.Net  · 技术社区  · 15 年前

    下面是一段代码片段:

    public IEnumerable<QuoteInfo> ParseJson(string json)
    {
        System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
        List<QuoteInfo> result = jss.Deserialize<List<QuoteInfo>>(System.Web.HttpUtility.HtmlDecode(json));
        return result;
    }
    

    我尝试使用RegistersConverters对反序列化过程中找到的任何字符串进行HTMLDE编码,但我不知道如何正确使用它。

    我怎样才能解决这个问题?

    正如back2dos很好地解释的,这个问题与HtmlDecode问题无关,而是与格式错误的Json字符串有关。

    2 回复  |  直到 10 年前
        1
  •  4
  •   back2dos    15 年前

    好吧,我对这方面的知识很肤浅 C# .NET HtmlDecode 应该解码 HTML entities

    正确的 HTML 实体 会是 &#x27 \x27 ... \x27 ASCII码 逃逸序列 JSON 解码器和许多编程语言,但是 完全无关 ...

    而且,这与 ,这就是问题所在。。。 JSON specs for strings 十六进制 ASCII码 逃逸序列 但是 逃逸序列 ,这就是无法识别转义序列的原因,也是使用 \u0027 \x 具有 \u00 (这应该完全适用于 有效的 JSON ,虽然有些评论在理论上可能会受到损害,但谁在乎呢…:(D)

    但就个人而言,如果您可以访问源代码,您应该修改它,使其输出 JSON 要匹配规格。。。

        2
  •  0
  •   Luke Schafer    15 年前

    我不确定我是否理解这些要求,但您可以尝试查看System.Security.SecurityElement.Escape(这就是我正在使用的,我猜有一个unescape,但现在没有时间检查api,必须去开会)

    祝你好运