gpt4 book ai didi

.net - Json.NET 可以对流进行序列化/反序列化吗?

转载 作者:行者123 更新时间:2023-12-03 04:26:24 24 4
gpt4 key购买 nike

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

文档:Deserialize JSON from a file stream

关于.net - Json.NET 可以对流进行序列化/反序列化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8157636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com