作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我听说 Json.NET 比 DataContractJsonSerializer 更快,并且想尝试一下...
但是我在 JsonConvert 上找不到任何采用流而不是字符串的方法。
例如,为了在WinPhone上反序列化包含JSON的文件,我使用以下代码将文件内容读取为字符串,然后反序列化为JSON。在我的(非常临时的)测试中,它似乎比使用 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);
我做错了吗?
最佳答案
当前版本的 Json.net 不允许您使用接受的答案代码。当前的替代方案是:
public static object DeserializeFromStream(Stream stream)
{
var serializer = new JsonSerializer();
using (var sr = new StreamReader(stream))
using (var jsonTextReader = new JsonTextReader(sr))
{
return serializer.Deserialize(jsonTextReader);
}
}
关于.net - Json.NET 可以对流进行序列化/反序列化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8157636/
我是一名优秀的程序员,十分优秀!