1

我有很多遗留代码json是通过使用 for 循环手动解析的。这O(n)通常需要时间。我知道json.net在这方面会更好,timespace深入了解它是如何工作的,这将帮助我做出明智的决定,是否值得努力实际继续并投入时间和人力将所有内容转移到 json.net。

4

1 回答 1

2

为了将您的问题解释为更笼统的问题,假设您正在寻找有关为各种场景选择哪种 JSON 序列化实现的建议。

我知道这个问题的三个明显答案:

  • 牛顿软件 JSON.NET
    • 提供丰富的功能和出色的性能
  • 服务栈文本
    • 提供简单性和出色的性能
  • BCL JsonSerializer
    • 避免了第 3 方库依赖,但速度明显较慢

如果您不关心 3rd 方库依赖项,请选择第一个选项,因为它会为您提供性能和功能。如果您不需要大量功能,请评估 ServiceStack.Text 是否满足您的需求(如果不确定,请使用 JSON.NET)。在任何其他情况下,坚持你所拥有的。

此外,在您知道该特定区域是性能瓶颈(或以其他方式需要更换,例如因为它是一个维护问题)之前,不要花时间通过替换您的 JSON 代码来提高您的代码速度。如果您正在考虑替换代码以获得性能,请隔离一些方法来使用替代实现或库针对类似场景对当前代码进行分析和基准测试,以避免基于假设做出决定。

最后,除非您特别计划能够修改它的来源(或者需要能够理解它),否则了解它在内部是如何工作的不应成为您决策过程中的一个因素。

于 2012-05-30T23:14:08.007 回答