- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在读取一个包含大量数据的 json 文件并将其反序列化为对象。我试图通过读取字节并反序列化来提高性能。但是当我搜索时它说我必须将它转换为字符串以反序列化它。有没有办法不转成字符串直接反序列化。
下面是我所做的。
byte[] bytesArray = File.ReadAllBytes(path);
var bytesAsString = Encoding.ASCII.GetString(bytesArray);
object person = JsonConvert.DeserializeObject<List<PersonList>>(bytesAsString);
我想去掉第二行,直接进入下一步,即跳过转字符串。
using (StreamReader file = File.OpenText(path))
{
JsonSerializer jsonSerializer = new JsonSerializer
{
NullValueHandling = NullValueHandling.Ignore
};
object person = (object)jsonSerializer.Deserialize(file, typeof(List<PersonList>));
}
上面的代码我读取了整个文件并将其转换为对象。我读取字节的目的是提高这段代码的性能。
最佳答案
没有。如果不将其转换为字符串,则无法反序列化整个对象。
原因很简单:Json 反序列化器必须读取 while JSON(文本)才能对其进行标记化。因此可以进行反序列化。
编辑:您可以做的是读取(大)文本文件的特定部分并反序列化它们。这可以提高你的表现。但是:你必须在这里再次使用字符串
Edit2:当您说“大数据”时,您是指需要大量数据还是指大量字节?也许你的类(class)有很多不需要的数据(比如私有(private)字段,动态生成的列表)。您可以使用 JsonIgnore
属性从您的 json 中“删除”它们。
关于c# - 将字节数组直接反序列化为 JSON.Net 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40170522/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!