19 Ağustos 2019 Pazartesi

Gson Gson Sınıfı

Giriş
Şu satırı dahil ederiz.
import com.google.gson.Gson;
Açıklaması şöyle
For small to medium-sized JSON datasets, developers can consider using the GSON library for processing JSON data. GSON is lightweight and provides a simple API for mapping JSON data to Java objects. However, it is not suitable for processing large JSON datasets.
constructor
Şöyle yaparız.
Gson gson = new Gson();
fromJson medou
İmzası şöyle
ublic <T> T fromJson(JsonElement json, Class<T> classOfT)
public <T> T fromJson(JsonElement json, Type typeOfT)
public <T> T fromJson(JsonElement json, TypeToken<T> typeOfT)

public <T> T fromJson(JsonReader reader, Type typeOfT) 
public <T> T fromJson(JsonReader reader, TypeToken<T> typeOfT) 

public <T> T fromJson(Reader json, Class<T> classOfT) 
public <T> T fromJson(Reader json, Type typeOfT) 
public <T> T fromJson(Reader json, TypeToken<T> typeOfT)

public <T> T fromJson(String json, Class<T> classOfT)
public <T> T fromJson(String json, Type typeOfT)
public <T> T fromJson(String json, TypeToken<T> typeOfT)
fromJson metodu - JsonReader + type
Açıklaması şöyle. JsonElement tüm hiyerarşini atası. Bu sınıftan kalıtan iki önemli sınıf daha var. Bunlar JsonObject ve JsonArray. Çoğu kodda hiçbir zaman bu detayla uğraşılmaz ve direkt belirtilen type tipinden nesne elde edilir.
Whenever we parse a JSON string, the object that we get is of type JsonElement. JsonElement in GSON is similar to the object class in Java, which is the superclass of all JSON.
Örnek
Şöyle yaparız.
T t = ...;
JsonReader reader = ...;
T cse = (T) gson.fromJson(reader, t.getClass());
fromJson metodu - Reader + type
Örnek
Şöyle yaparız
Gson gson = new Gson();
FileReader reader = new FileReader("data.json");
BookList bookList = gson.fromJson(reader, BookList.class);

class Book {
   ...
}

class BookList {
  private final List<Book> books;

  BookList(List<Book> books) {
    this.books = books;
  }

  public List<Book> getBooks() {
     return books;
  }
}
fromJson metodu - string  + type
Örnek
Şöyle yaparız.
String str = ...;
Foo foo = gson.fromJson(str, Foo.class);
Örnek
Şöyle yaparız.
String str ="{\"Welcome\":1,\"Hi\":2,\"Hello\":1,\"Jin\":1}"; 
JsonElement jsonElement = gson.fromJson(str, JsonElement.class);
JsonObject jsonObject = jsonElement.getAsJsonObject();
Örnek
Şöyle yaparız.
JsonObject obj = gson.fromJson("{id:12345,    active:1}", JsonObject.class);
fromJson - string + TypeToken
Açıklaması şöyle.
Forces clients to create a subclass of this class which enables retrieval the type information even at runtime.
Bu metod Jackson'daki ObjectMapper.readValue() metodunun TypeReference parametresi alan şu koda benzetiyorum.
String responseString = ...;
Map<String, Object> map = new HashMap<String, Object>();
ObjectMapper mapper = new ObjectMapper();

map = mapper.readValue(responseString, new TypeReference<Map<String, String>>(){});
Örnek
Şöyle yaparız.
new Gson().fromJson(json, new TypeToken<List<User>>(){}.getType())
Örnek
Şöyle yaparız
Gson g = new Gson();
Type mapType = new TypeToken<Map<String, Object>>(){}.getType();
Map<String, Object> firstMap = g.fromJson( json, mapType);
toJson - object
Örnek
Şöyle yaparız.
Foo foo = ...;
Gson gson = new Gson();
String str = gson.toJson(foo);
Örnek
Şöyle yaparız.
// GSON library for JSON
@Override
public String toString(){
  return new com.google.gson.Gson().toJson(this);
}
toJson metodu - object + class
Örnek
Şöyle yaparız
System.out.println(new Gson().toJson(map1, HashMap.class));
toJson metodu - object + Appendable
void döner. Şöyle yaparız.
String str = ...
PrintWriter pw = ...;
gson.toJson (str, pw);

Hiç yorum yok:

Yorum Gönder