小编Iul*_*scu的帖子

Json.NET Uri(反序列化)错误

我需要使用最新的(4.0.3)Json.NET库对包含System.Uri属性的对象进行序列化和反序列化。

以下代码演示了该问题:

string input = "http://test.com/%22foo+bar%22";
Uri uri = new Uri(input);
string json = JsonConvert.SerializeObject(uri);
Uri output = JsonConvert.DeserializeObject<Uri>(json);
Run Code Online (Sandbox Code Playgroud)

DeserializeObject方法抛出JsonReaderException。在4.0.2。下可以正常工作。

我已经通过测试和修补程序在Codeplex上提交了一个问题,以解决该问题,但是作者发布固定版本似乎需要一点时间。

同时,我能做些什么(使用JsonSettings或其他方法)来使最新版本按预期工作吗?

到目前为止,我有几个选择:

  1. 坚持4.0.2-新的nuget包取决于4.0.3
  2. 将uri更改为字符串-我宁愿选择选项1和手动管理的pkg依赖项
  3. 使用应用了补丁的自定义版本-这是我现在正在做的事情,但是我讨厌覆盖nuget包的程序集的想法。

c# serialization json.net deserialization

3
推荐指数
1
解决办法
3921
查看次数

标签 统计

c# ×1

deserialization ×1

json.net ×1

serialization ×1