그놈의 안드로이드

안드로이드 GSON 라이브러리 본문

안드로이드/안드로이드

안드로이드 GSON 라이브러리

Sandai.Developer 2020. 3. 29. 18:37

Github:Gson -> https://github.com/google/gson

 

작성일 기준 최신버전 : 2.8.6

 

Gradle : 

dependencies {
  implementation 'com.google.code.gson:gson:2.8.6'
}

Maven

<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.6</version>
</dependency>

 

sample.json

{
    "glossary": {
        "title": "example glossary",
		"GlossDiv": {
            "title": "S",
			"GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
					"SortAs": "SGML",
					"GlossTerm": "Standard Generalized Markup Language",
					"Acronym": "SGML",
					"Abbrev": "ISO 8879:1986",
					"GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
						"GlossSeeAlso": ["GML", "XML"]
                    },
					"GlossSee": "markup"
                }
            }
        }
    }
}

 

sampleDao.kt

package com.panic.dualtranslation.dao

class sampleDao {
    private val ID: String? = null
    private val SortAs: String? = null
    private val GlossTerm: String? = null
    private val Acronym: String? = null
    private val Abbrev: String? = null
    private val para: String? = null
    private val GlossSeeAlso: ArrayList<String>? = null
    private val GlossSee: String? = null
}

 

기본 사용법

val sampleDao = gson.fromJson<sampleDao>(json, sampleDao::class.java)

(json 변수는 json내용이 들어가 있는 String 형)

 

 

JSONArray 사용법

sampleArray.json

{
  "sample": [
    {
      "ID": "SGML",
      "SortAs": "SGML",
      "GlossTerm": "Standard Generalized Markup Language",
      "Acronym": "SGML",
      "Abbrev": "ISO 8879:1986",
      "para": "A meta-markup language, used to create markup languages such as DocBook.",
      "GlossSeeAlso": [
        "GML",
        "XML"
      ],
      "GlossSee": "markup"
    },
    {
      "ID": "SGML2",
      "SortAs": "SGML",
      "GlossTerm": "Standard Generalized Markup Language",
      "Acronym": "SGML",
      "Abbrev": "ISO 8879:1986",
      "para": "A meta-markup language, used to create markup languages such as DocBook.",
      "GlossSeeAlso": [
        "GML",
        "XML"
      ],
      "GlossSee": "markup"
    },
    {
      "ID": "SGML3",
      "SortAs": "SGML",
      "GlossTerm": "Standard Generalized Markup Language",
      "Acronym": "SGML",
      "Abbrev": "ISO 8879:1986",
      "para": "A meta-markup language, used to create markup languages such as DocBook.",
      "GlossSeeAlso": [
        "GML",
        "XML"
      ],
      "GlossSee": "markup"
    }
  ]
}

 

        val sampleList = ArrayList<sampleDao>()
        val jsonArray = JSONArray(json)
        for (i in 0 until jsonArray.length()) {
            sampleList.add(gson.fromJson<sampleDao>(jsonArray[i].toString(), sampleDao::class.java))
        }
Comments