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. 결과
'Android' 카테고리의 다른 글
Android] Shared Preferences를 이용한 간단한 회원 가입 (0) | 2022.04.05 |
---|---|
Android] 값을 입력 받아서 Gson 사용하기 (0) | 2022.04.01 |
Android] SharedPreferences 저장 위치 접근 (0) | 2022.03.24 |
Android] JSON 생성 및 파싱 (2) | 2022.03.20 |
Android] JSON - JavaScript Object Notatio (0) | 2022.03.19 |