본문 바로가기

Android

Android] Gson의 정의 및 사용 방법

Gson이란 java 객체 에서 json 으로 변환하거나 json에서 java객체로 변환해주는 라이브러리로 

Gson을 사용하면 한번의 파싱을 통해 변환이 가능해진다.

 

 

Gson 사용 이유

서버에서 Json값을 받으면 안드로이드는 파싱을 통해 필요한 곳에 알맞게 값을 넣어주거나 표시해야 되기 때문에

Gson을 통해 파싱 과정을 단축시킨다

 

Gson 사용 방법

1. buil.gradle에 implementation 추가

implementation 'com.google.code.gson:gson:2.9.0'

 

2. Gson 객체 생성

-new Gson()

-new GsonBuilder.create()  >> 사용시 여러 옵션을 추가하여 객체 생성 가능

Gson gson = new Gson();

 

3. Json 생성

jsonObject 객체 생성 후 프로퍼티 추가

JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name","kim");
jsonObject.addProperty("num",010123123);
jsonObject.addProperty("age",25);

String infoJson = gson.toJson(jsonObject);

System.out.println(infoJson);

4. 결과

 


 

  • Java object 에서 Json 변환

1. person 클래스

package com.example.gson;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Person {
    private String name;

    private int num;

    private int age;

    public Person(String name, int num, int age){
        this.name = name;
        this.age = age;
        this.num = num;
    }
    public String toString(){
        return "정보[이름 : "+ name+", 나이 : "+age+",번호 : "+num+"]";
    }
}

2. person 클래스 > Json 문자열 변환 코드

package com.example.gson;

import android.os.Bundle;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import com.google.gson.Gson;
import com.google.gson.JsonObject;

public class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Person person = new Person("kim",010123123,25);

        Gson gson = new Gson();


        String infoJson = gson.toJson(person);

        System.out.println(infoJson);

    }

}

3. 결과

  • Json 에서 Java object 변환

 

1. person 클래스

package com.example.gson;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Person {
    private String name;

    private int num;

    private int age;

    public Person(String name, int num, int age){
        this.name = name;
        this.age = age;
        this.num = num;
    }
    public String toString(){
        return "정보[이름 : "+ name+", 나이 : "+age+",번호 : "+num+"]";
    }
}

2. json 문자열 > person클래스 변환 코드

 

package com.example.gson;

import android.os.Bundle;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import com.google.gson.Gson;
import com.google.gson.JsonObject;

public class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String jsonPer = "{name:kim,age:25,num:0102139731}";


        Gson gson = new Gson();


        Person infoJson = gson.fromJson(jsonPer,Person.class);

        System.out.println(infoJson);

    }

}

3. 결과



Calendar
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
더보기
Archives
Visits
Today
Yesterday