gpt4 book ai didi

c# - 使用 Json.NET 反序列化多个 json 字符串的最快方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:25 24 4
gpt4 key购买 nike

随着时间的推移,我将检索多个 json 数据 block 并使用 Json.NET 反序列化它们。我创建了反射(reflect)每个不同数据 block 结构的对象,但是当收到每个 block 时,我将无法检测到类型。

我想避免尝试对每种类型进行反序列化、捕获失败(当抛出异常时)并继续处理下一种类型。这样做显然对性能不利。

有没有一种快速有效的方法来确定json消息的结构并反序列化?唯一的方法是使用 (JObject)JsonConvert.DeserializeObject(...)然后钻入结构以检查某些子项是否存在,然后使用 JsonConvert.DeserializeObject<T>(...) ?似乎将对象反序列化两次是低效的。

最佳答案

您说试错反序列化“显然对性能不利”。你测量过这个吗?解串器是否需要很长时间才能确定其类型错误?它可能不够优雅,但可能不会那么昂贵。

根据您的测量,您可以对 JSON 数据的开头部分进行字符串比较,然后分支到正确的类型,并以反复试验作为后备。

但是,您可能会发现,如果您尝试按最有可能发生的类型进行反序列化,那么您可能会发现它的速度足够,而无需进行额外的比较。

关于c# - 使用 Json.NET 反序列化多个 json 字符串的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5824216/

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