您的 JSON 似乎相当简短和基本。您似乎不需要特殊的速度或异国情调的功能。 http://jsonviewer.stack.hu/#http://eu.battle.net/api/wow/character/moonglade/Xaveak?fields=stats,talents
虽然自从 Delphi XE2 以来,您确实将 JSON 解析器作为 DB-Express 套件的一部分,但仍然存在一些问题:
1. 它被告知会导致速度和可靠性方面的问题。
2. 它会让你的程序依赖于 DB-Express 包(为什么,如果你没有真正使用它来访问 DB?) 3. 它将你的未来绑定到 Delphi 的企业版。
所以你最好尝试一些 3rd-party 库。
最快的一个可能是 Synopse JSON 解析器,他们的mORMot 库的副项目。它通常是很好的代码,非常注重速度和开发人员在他们的论坛上积极帮助。
另一个已知和使用的库是 Henri Gourvest 的 SuperObject。它声称是Delphi最快的解析器,虽然由于上述原因可能不再正确,但速度对于大多数任务来说已经足够了。Henri 本人并没有积极支持他的前项目,总是在做一些新的事情,所以稀缺的文档(也在安装包中复制)将是你正式拥有的全部,另外还有一个论坛,其他用户可能会帮助你。OTOH SuperObject 设计背后的主要思想是统一性,虽然某些任务确实可以更好地记录 - 这主要是由于不确定性“如果这项任务真的可以在没有任何特殊处理的情况下以统一的方式工作”。但通常是这样。
PS。由于那是 wiki,您可能会尝试为未来的用户增强它;-)
所以回到文档,你需要
1) 将整个 JSON 加载到库中。您可以通过 http 库创建 TStream 或提供带有数据的字符串缓冲区来做到这一点:即Parsing a JSON data structure section of the manual
2) 读取诸如“名称”和“级别”之类的值 -如何读取对象的属性值?那里的部分。
3) 征集像“人才”这样的数组 - 在浏览数据结构部分中进行了描述。