سلام ،
gson کار serialize و deserialize کردن به json رو انجام میده ،
مثلا یک مثال ساده میزنم متوجه شی :
یک json قراره دریافت کنی که اطلاعات یک کتاب رو میفرسته ، به این شکل :
{
"id":"1",
"title":"name1",
"pages_number":"432",
"images_url":[
"http://www.asdf.com/1.jpg",
"http://www.asdf.com/2.jpg",
"http://www.asdf.com/3.jpg"
]
}
بعد میای یک کلاس میسازی و اسم آبجکت هاشو دقیقا چیزی که json میفرسته میزاری ، اینجوری :
public class Book {
public Book(){
images_url = new ArrayList<>();
}
public int id;
public String title;
public int pages_number;
public ArrayList<String> images_url;
}
خوب حالا فرض میکنیم رشته json ای که دریافت کردی توی متغیر(String) به اسم jsonStr هستش ،
با این کد gson میاد اون رشته json به یک آبجت از نوع Book تبدیل میکنه :
Book book = new Gson().fromJson(jsonStr,Book.class);
و برعکس این قضیه هم صدق میکنه ، یعنی میتونی یک کلاس رو تبدیل به json کنی ، اینجوری :
Book book = new Book();
book.id = 32;
book.pages_number = 5234;
book.title = "book title";
book.images_url.add("http://www.asdf.com/1.jpg");
book.images_url.add("http://www.asdf.com/2.jpg");
book.images_url.add("http://www.asdf.com/3.jpg");
book.images_url.add("http://www.asdf.com/4.jpg");
String jsonStr = new Gson().toJson(book);
بعد از اینکه کد بالا اجرا شه ، داخل متغیر jsonStr متن(json) زیر ریخته میشه :
{
"title":"book title",
"images_url":
[
"http://www.asdf.com/1.jpg",
"http://www.asdf.com/2.jpg",
"http://www.asdf.com/3.jpg",
"http://www.asdf.com/4.jpg"
],
"pages_number":5234,"id":32
}