加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Json.NET可以序列化/反序列化到流吗?

发布时间:2020-12-16 18:46:10 所属栏目:百科 来源:网络整理
导读:我听说过Json.NET比DataContractJsonSerializer快,想试试看吧… 但我找不到任何方法在JsonConvert接受流,而不是一个字符串。 例如,对于在WinPhone上反序列化包含JSON的文件,我使用以下代码将文件内容读入字符串,然后反序列化为JSON。在我的(非常ad-hoc)
我听说过Json.NET比DataContractJsonSerializer快,想试试看吧…

但我找不到任何方法在JsonConvert接受流,而不是一个字符串。

例如,对于在WinPhone上反序列化包含JSON的文件,我使用以下代码将文件内容读入字符串,然后反序列化为JSON。在我的(非常ad-hoc)测试中似乎是比使用DataContractJsonSerializer慢4倍慢直接从流…

// DCJS
    DataContractJsonSerializer dc = new DataContractJsonSerializer(typeof(Constants));
    Constants constants = (Constants)dc.ReadObject(stream);

    // JSON.NET
    string json = new StreamReader(stream).ReadToEnd();
    Constants constants = JsonConvert.DeserializeObject<Constants>(json);

我做错了吗?

谢谢,

Omri。

更新:这不再工作在当前版本,请参见 below正确答案(无需投票,这是正确的老版本)。

将JsonTextReader类与StreamReader一起使用,或者使用直接接受StreamReader的JsonSerializer重载:

var serializer = new JsonSerializer();
serializer.Deserialize(streamReader);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读