如何解析没有对象名称的JSON数组

我如何用Java解析这个JSON数组? 我很困惑,因为没有对象。 谢谢!

编辑:我是个白痴! 我应该阅读文档……这可能是它的用途……

[ { "id":"63565", "name":"Buca di Beppo", "user":null, "phone":"(408)377-7722", "address":"1875 S Bascom Ave Campbell, California, United States", "gps_lat":"37.28967000", "gps_long":"-121.93179700", "monhh":"", "tuehh":"", "wedhh":"", "thuhh":"", "frihh":"", "sathh":"", "sunhh":"", "monhrs":"", "tuehrs":"", "wedhrs":"", "thuhrs":"", "frihrs":"", "sathrs":"", "sunhrs":"", "monspecials":"", "tuespecials":"", "wedspecials":"", "thuspecials":"", "frispecials":"", "satspecials":"", "sunspecials":"", "description":"", "source":"ripper", "worldsbarsname":"BucadiBeppo31", "url":"www.bucadebeppo.com", "maybeDupe":"no", "coupontext":"", "couponimage":"0", "distance":"1.00317", "images":[ 0 ] } ] 

它是完全有效的JSON。 它是一个包含一个对象的数组。

在JSON中,数组和对象没有名称。 只有对象的属性才有名称。

这些都在http://json.org上的JSON语法图中清楚地描述。 (FWIW,该网站有多种语言的翻译……)


你怎么解析它? 有许多用于解析JSON的库。 其中许多是从上面的网站链接。 我建议你使用其中一个而不是编写自己的解析代码。


回应此评论:

OTOH,编写自己的解析器是一个合理的项目,也是学习JSON和学习Java(或任何语言)的良好练习。 合理的解析器可以用大约500行文本编写。

在我看来(在我的时间里编写了许多解析器),为语言编写解析器是一种非常低效的方式来获得对语言语法的理解。 根据您实现解析器的方式(以及语言语法规范的性质),您很容易理解错误

更好的方法是阅读语言的语法规范,OP现在已经完成了,并且为了实现解析器,您必须这样做。

编写解析器可能是一个很好的学习练习,但它实际上是编写解析器的学习练习。 即便如此,您还需要选择适当的实现方法,并使用适当的语言进行解析。

它是一个包含一个元素的数组。 该元素是一个对象。 对象(字典)包含大约20个名称/值对。