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

时间:2011-08-06 02:32:43

标签: java 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
      ]
   }
]

2 个答案:

答案 0 :(得分:2)

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

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

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


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


回应此评论:

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

在我看来(在我的时间里写了很多解析器),为一种语言编写解析器是一种非常低效的方式,可以帮助他理解语言的语法。根据您实现解析器的方式(以及语言语法规范的性质),您可以轻松获得不正确的理解。

更好的方法是阅读OP现在已经完成的语言语法规范,以及为了实现解析器而必须执行的操作。

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

答案 1 :(得分:1)

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