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

我听说过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);

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...