这对Java Objects(JSON)是如何解析的

时间:2013-03-08 21:55:04

标签: java android json parsing gson

从服务器API我得到以下输出:

{
"1": {
"link": "http://www.hfk-bremen.de/t/meisterkurse/n/4-historic-brass-studio",
"title": "4. Historic Brass Studio",
"content": "Vom 13. bis 16. März 2013 findet das 4. Historic Brass Studio Bremen an der Hochschule für Künste Bremen statt. Angeboten an den vier Tage authentische historische Spielpraxis für Trompete, Posaune, Zink und Horn:",
"img": "http:
//www.hfk-bremen.de/sites/default/files/imagecache/event_block_thumb_300w/media/historicbrassstudio_1.jpg",
"type": "concerts"
},
"2": {
"link": "http://www.hfk-bremen.de/t/konzerte/n/orgelkonzert-3",
"title": "Orgelkonzert",
"content": "Studierende der Orgeklassen von KMD Prof. Tilmann Benfer spielen die Choralbearbeitungen von Brahms und Kluge am 14.03.2013 im St. Petri Dom Bremen.",
"img": "http://www.hfk-bremen.de/sites/default/files/imagecache/content_start/imagegeneration/Orgelkonzert.png",
"type": "concerts"
},
"3": {
"link": "http://www.hfk-bremen.de/t/konzerte/n/musik-im-museum-6",
"title": "Musik im Museum",
"content": "Konzert mit Clovis Michon (Violoncello) aus der Klasse von Prof. Alexander Baillie am 14.03.2012 um 19.30 Uhr. Auf dem Programm stehen die Solo-Suiten von J.S. Bach No. 1-3, BWV 1007-1009",
"img": "http://www.hfk-bremen.de/sites/default/files/imagecache/event_block_thumb_300w/media/musikimmuseum_8.jpg",
"type": "concerts"
},
"4": { etc...

(如果您的浏览器中有JSON解析器插件,则可以访问此API链接以进行实时预览:http://hfkio.thisisasite.de/api/aktuelles

我正在使用GSON库,它需要使用对象作为解析json的示例。但我没有得到这个json的结构,它看起来像一个包含各种子对象的大对象,称为“1,2,3 ......”,每个对象又包含5个字符串。我对JSON解析很新,还在学习,我不完全明白我应该如何解析它。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

在JSON中,{ }括号表示一个对象。 JSONObject由键值对组成,以逗号分隔。在您的情况下,初始{表示对象的开始。该Object包含一些键值对,其中键是数字(您正在看到的“1,2,3 ......”),值是嵌套的JSONObjects。您所看到的正是您所说的,具有编号子对象的单个对象,因为它实际上是包含许多其他JSONObject的JSONObject。

答案 1 :(得分:2)

您可以将其解析为Map

String json =
        "{\n" +
        "    \"1\": {\n" +
        "        \"link\": \"http://www.hfk-bremen.de/t/meisterkurse/n/4-historic-brass-studio\",\n" +
        "        \"title\": \"4. Historic Brass Studio\",\n" +
        "        \"content\": \"Vom 13. bis 16. März 2013 findet das 4. Historic Brass Studio Bremen an der Hochschule für Künste Bremen statt. Angeboten an den vier Tage authentische historische Spielpraxis für Trompete, Posaune, Zink und Horn:\",\n" +
        "        \"img\": \"http:\n" +
        "        //www.hfk-bremen.de/sites/default/files/imagecache/event_block_thumb_300w/media/historicbrassstudio_1.jpg\",\n" +
        "        \"type\": \"concerts\"\n" +
        "    },\n" +
        "    \"2\": {\n" +
        "        \"link\": \"http://www.hfk-bremen.de/t/konzerte/n/orgelkonzert-3\",\n" +
        "        \"title\": \"Orgelkonzert\",\n" +
        "        \"content\": \"Studierende der Orgeklassen von KMD Prof. Tilmann Benfer spielen die Choralbearbeitungen von Brahms und Kluge am 14.03.2013 im St. Petri Dom Bremen.\",\n" +
        "        \"img\": \"http://www.hfk-bremen.de/sites/default/files/imagecache/content_start/imagegeneration/Orgelkonzert.png\",\n" +
        "        \"type\": \"concerts\"\n" +
        "    },\n" +
        "    \"3\": {\n" +
        "        \"link\": \"http://www.hfk-bremen.de/t/konzerte/n/musik-im-museum-6\",\n" +
        "        \"title\": \"Musik im Museum\",\n" +
        "        \"content\": \"Konzert mit Clovis Michon (Violoncello) aus der Klasse von Prof. Alexander Baillie am 14.03.2012 um 19.30 Uhr. Auf dem Programm stehen die Solo-Suiten von J.S. Bach No. 1-3, BWV 1007-1009\",\n" +
        "        \"img\": \"http://www.hfk-bremen.de/sites/default/files/imagecache/event_block_thumb_300w/media/musikimmuseum_8.jpg\",\n" +
        "        \"type\": \"concerts\"\n" +
        "    }\n" +
        "}";

Gson gson = new Gson();

Map map = gson.fromJson(json, Map.class);

System.out.println(((Map)map.get("2")).get("title"));

会打印:

Orgelkonzert