Json反序列化时解码Html编码的字符

2023-11-22

我正在使用 Json.net 反序列化 Web API 调用收到的 json 数据。某些字段通常具有 html 编码字符,例如" or &如何在反序列化期间自动解码这些字符?

我想到了两种可能的解决方案:

  1. Calling System.Web.HttpUtility.HtmlDecode()在属性设置器中,例如:

    public string Title
    {
        set
        {
            title = System.Web.HttpUtility.HtmlDecode(value);
        }
    }
    
  2. 编写调用的自定义 JsonConverterSystem.Web.HttpUtility.HtmlDecode() in ReadJson() method:

    public class HtmlEncodingConverter : Newtonsoft.Json.JsonConverter
    {
        public override bool CanConvert(Type objectType)
        {
            return objectType == typeof(String);
        }
    
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            return System.Web.HttpUtility.HtmlDecode((string)reader.Value);
        }
    
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            writer.WriteRawValue(System.Web.HttpUtility.HtmlEncode((string)value));
        }
    }
    

但是是否有任何内置解决方案允许在 json 反序列化期间执行 html 解码而无需额外代码?


System.Net.WebUtility.HtmlDecode()

or

HttpUtility.HtmlDecode()

这是要走的路,没有任何关于 JsonSerializer 的内置内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Json反序列化时解码Html编码的字符 的相关文章

随机推荐

  • Angular 2 - 如何为动态加载的组件设置 id 属性

    我在用DynamicComponentLoader加载子组件并生成以下 html
  • 在 std::map 和 std::unordered_map 之间进行选择[重复]

    这个问题在这里已经有答案了 现在std有一个真正的哈希映射unordered map 为什么 或何时 我仍然想使用旧的map over unordered map在它实际存在的系统上 是否有任何我无法立即看到的明显情况 As 已经提到过 m
  • R tm removeWords函数不删除单词

    我试图从我构建的语料库中删除一些单词 但它似乎不起作用 我首先遍历所有内容并创建一个数据框 按频率顺序列出我的单词 我使用此列表来识别我不感兴趣的单词 然后尝试创建一个删除单词的新列表 但是 这些词仍然保留在我的数据集中 我想知道我做错了什
  • 在 JAVA 中使用 JSOUP 从 HTML 中提取 CSS 样式

    任何人都可以帮助使用 Java 中的 Jsoup 从 HTML 中提取 CSS 样式 例如在下面的 html 中我想提取 ft00 和 ft01 div style width 931 height 1243 div
  • WPF:滚动项目控制内容固定标题

    是否可以使用 WPF 的 ItemsControl 执行类似的操作 Demo 我正在尝试冻结 GroupedItems 而不是 GridView 列 资源
  • 如何获取小部件当前的 x 和 y 坐标?

    我目前正在编写一个关于游戏 4 in a row 的游戏项目 为了制作图片小部件磁盘落在列中的动画 我一直在考虑创建一个 while 循环 如下所示 while widgetx and widgety 在空白部分将有我需要获得的值 我的问题
  • WebRTC 永远不会在 IceCandidate 上触发

    我开始使用 WebRTC 进行开发 但那东西从来没有给我提供 ICE 候选人 我设置了一切 我正在交换描述和东西 我还在那里缩小了一个超级丑陋的功能 以确保一切都正确运行 一个接一个 两者的信令状态都是稳定的 onError从未被触发 如预
  • Git:从存储库自动拉取?

    有没有什么方法可以设置 git 使其侦听来自远程存储库的更新 并在发生变化时拉取 用例是我想使用 git 部署一个 Web 应用程序 这样我就可以对已部署的应用程序进行版本控制 但想将 中央 git 存储库放在 Github 上而不是 We
  • 将 int 转换为 16 位无符号短整型

    我想在 Python 中将整数修剪为 16 位字 无符号短整型 像下面这样的东西不起作用 word array H word insert 0 0x19c6acc6 Use ctypes c ushort gt gt gt import c
  • 为什么 Android 教程中的大多数字段(类成员)都以“m”开头?

    我知道驼峰规则 但我对这个 m 规则感到困惑 它代表什么 我是一名 PHP 开发人员 我们 使用变量的首字母作为类型指示 例如 b 代表布尔值 i 代表整数等等 m 是 Java 的东西吗 它代表移动吗 混合 该表示法来自 AOSP And
  • 如何迭代 PriorityQueue?

    for Event e pq 不按优先级顺序迭代 while pq isEmpty Event e pq poll 这有效但清空了队列 你不能遍历一个Priority Queue由于底层实现的原因 我认为它是Java中的最小堆 因此按该顺序
  • GCC 中函数静态变量是线程安全的吗?

    在示例代码中 void foo static Bar b 编译为GCC是否保证b将以线程安全的方式创建和初始化 在 gcc 的手册页中 找到了 fno 线程安全 静态命令行选项 不要发出额外的代码来使用 C ABI 中指定的例程 本地线程安
  • php:无法修改函数中的数组?

    所以我尝试通过在函数中添加键和值来修改数组modArr 我希望 var 转储显示添加的项目 但我得到 NULL 我在这里缺少哪一步
  • 错误:gpu_process_transport_factory.cc(1007) - 丢失 UI 共享上下文:在无头模式下通过 ChromeDriver 初始化 Chrome 浏览器时

    当我尝试在 3 台计算机中的 2 台上运行代码时 出现此错误 0502 155335 565 ERROR gpu process transport factory cc 1007 Lost UI shared context 这是代码 f
  • 为什么 os.scandir() 和 os.listdir() 一样慢?

    我尝试在 Windows 上使用 os scandir 而不是 os listdir 来优化用 Python 编写的文件浏览功能 然而时间没有变化 大概是2分半钟左右 我也说不上来为什么 以下是原始和更改后的功能 os listdir 版本
  • 在 linq 中设置相等

    我有两个列表 A 和 B 列表 如何以最便宜的方式确定它们是否相等 我可以写类似 A减B 并集 B减A 空集 的内容 或者将它们连接在一起并计算元素的数量 但它相当昂贵 有解决方法吗 如果列表项的顺序相关 bool areEqual a S
  • 如何检查圆是否重叠

    我正在尝试编写一个程序来检查一个圆是否包含另一个圆 某个点是否在圆内 或者我遇到问题的点 如果一个圆与另一个圆重叠 import javafx scene shape Circle public class Problem10 11 pub
  • 使用 Handsontable 时如何强制选定的单元格进入编辑模式?

    Handsontable 为选择单元格时提供了一些不错的钩子 但我似乎无法找到方法让它允许我在选择单元格时强制进入编辑模式 我可以像这样检测单元格选择 Handsontable PluginHooks add afterSelection
  • iOS 应用程序初始屏幕的尺寸是多少?

    我正在使用 iOS SDK 开发一个应用程序 我需要知道什么Default我需要的启动画面尺寸 2018 更新 请不要使用此信息 我将留下以下帖子以供参考 请阅读苹果的文档人机界面指南 启动屏幕有关启动屏幕和建议的详细信息 Thanks D
  • Json反序列化时解码Html编码的字符

    我正在使用 Json net 反序列化 Web API 调用收到的 json 数据 某些字段通常具有 html 编码字符 例如 quot or amp 如何在反序列化期间自动解码这些字符 我想到了两种可能的解决方案 Calling Syst