格式化json文件并将其解析为java

时间:2013-12-04 12:35:20

标签: java android json gson

对于我正在处理的Android应用程序,我需要将包含各种信息的json文件解析到我的应用程序,现在文件看起来像这样:

{
    "R6":{
        "Typ": "KnotenRaum",
        "ID": 1,
        "X-Koor": 3,
        "Y-Koor": 11,
        "Ebene": 0,
        "Kantenliste": [ "m7" ],
        "GruppenID": 1,
        "Raum": {
            "Nummer": "A.00.01",
            "Typ": null,
            "Person": null
        }
    },
    "H107":{
        "Typ": "KnotenTreppe",
        "ID": 115,
        "X-Koor": 7,
        "Y-Koor": 3,
        "Ebene": 1,
        "Kantenliste": [ "h108","b1002" ],
        "GruppenID": 1,
        "Raum": {}
    }
} 

因为这是我(或者更具体一点)我第一次使用json,我不确定这是否是一种形成文件的“好”方式。问题是,我不仅有5个或10个对象,但我想数百个,所以我认为使用像“H107”这样的说明符是错误的方法,我应该把它全部放在一个大数组中?

第二:如果我把它放在这样的数组中,将它解析为java的最佳方法是什么? 我不需要类对象(至少不一定),因为当应用程序第一次运行时,所有这些数据都将存储在sqlite数据库中。

我发现了一些例子,但大多数只包含一个对象,并且比我生成的json文件简单得多。

2 个答案:

答案 0 :(得分:1)

H107和R6是对象名称?

我认为这可以是一个包含多个对象的数组,其中“R6”可以是对象上的JSON键。

例如:

[
  {
    "name": "R6",
    "Typ": "KnotenRaum",
    "ID": 1,
    "X-Koor": 3,
    "Y-Koor": 11,
    "Ebene": 0,
    "Kantenliste": [
      "m7"
    ],
    "GruppenID": 1,
    "Raum": {
      "Nummer": "A.00.01",
      "Typ": null,
      "Person": null
    }
  },
  {
    "name": "H107",
    "Typ": "KnotenTreppe",
    "ID": 115,
    "X-Koor": 7,
    "Y-Koor": 3,
    "Ebene": 1,
    "Kantenliste": [
      "h108",
      "b1002"
    ],
    "GruppenID": 1,
    "Raum": {}
  }
]

关于对象我建议你使用一个对象来表示这个JSON,更可读,更容易保存在SQLite上,你可以使用像Jackson或GSON这样的框架将这个JSON自动解析为对象。

答案 1 :(得分:0)

我认为将数据存储到对象中是明智的。 将对象插入SQLdatabase以及创建JSON对象数组更容易。

Andhere是一个关于这个主题的很好的教程: Android JSON tutorial