这还取决于 JSON 的结构。树状结构往往比对象列表更有效地解析。这是一个人对数据结构的基本理解将派上用场的地方。如果您在 JSON 中解析类似列表的结构,我不会感到惊讶:
{
{
"name": "New York",
"country":"USA",
"lon": -73.948753,
"lat": 40.712784
},
{
"name": "Chicago",
"country":"USA",
"lon": -23.948753,
"lat": 20.712784
},
{
"name": "London",
"country":"UK",
"lon": -13.948753,
"lat": 10.712784
}
}
然后将其与 XML 中的树状结构进行比较,可能如下所示:
<cities>
<country name="USA">
<city name="New York">
<long>-73.948753</long>
<lat>40.712784</lat>
</city>
<city name="Chicago">
<long>-23.948753</long>
<lat>20.712784</lat>
</city>
</country>
<country name="UK">
<city name="London">
<long>-13.948753</long>
<lat>10.712784</lat>
</city>
</country>
</cities>
XML 结构可能产生比 JSON 更快的时间,因为如果我循环通过英国的节点找到伦敦,我不必循环通过其他国家来找到我的城市。在 JSON 示例中,如果伦敦靠近列表底部,我可能会这样做。但是,我们在这里所拥有的是结构上的差异。我会惊讶地发现 XML 在任何一种情况下或在结构完全相同的情况下都更快。
Here 是我使用 Python 做的一个实验——我知道问题是从 JavaScript 的角度来看这个问题,但你可能会发现它很有用。结果表明 JSON 比 XML 更快。但是,重点是:您的结构将影响您检索它的效率。