JSON'dan Java'ya Dönüştürücü
Bir JSON örneğinden tarayıcınızda doğrudan Java POJO sınıfları üretin.
Bu araç tamamen tarayıcınızda çalışır. Dosyalarınız hiçbir zaman bir sunucuya yüklenmez.
import java.util.List;
public class Root {
private String name;
private Integer age;
private Boolean active;
private List<String> tags;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Boolean getActive() {
return active;
}
public void setActive(Boolean active) {
this.active = active;
}
public List<String> getTags() {
return tags;
}
public void setTags(List<String> tags) {
this.tags = tags;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
public class Address {
private String street;
private String zip;
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getZip() {
return zip;
}
public void setZip(String zip) {
this.zip = zip;
}
}Bu dönüştürücü ne yapar?
Bir JSON değerini okuyup eşleşen Java sınıfları üretir: örnekte bulunan her nesne şekli için private alanlara ve public getter/setter metotlarına sahip düz bir sınıf (POJO).
Nasıl kullanılır?
Editöre bir JSON nesnesi, dizisi veya temel değer yapıştırın. Hemen bir `Root` sınıfı ve iç içe geçmiş her nesne şekli için ek bir sınıf görünür; nesne olmayan bir kök, tek bir `value` alanına sahip bir `Root` sınıfına sarılır.
Örnek
Bir `name` metni ve iç içe bir `address` nesnesi içeren bir nesne, private bir `String name` alanı ile `getName`/`setName` metotlarına sahip bir `Root` sınıfı ve iç içe geçmiş şekil için ayrı bir `Address` sınıfı üretir.
Tip eşlemesi
Metinler `String`, tam sayılar `Integer`, ondalıklı sayılar `Double`, boolean'lar `Boolean` ve diziler `List<ElementType>` olur (gerekli `java.util.List` import'u otomatik eklenir). Örnekte `null` olan değerler `Object` olarak tiplenir.
İç içe nesneler ve listeler
Her iç içe nesne, geldiği anahtardan üretilmiş kendi sınıfını alır. Java'da aynı dosyadaki sınıflar tanım sırasından bağımsız olarak birbirine referans verebildiğinden, çıktıdaki sınıf sırası önemli değildir.
Sınırlamalar
Üretilen sınıflar yalnızca sağlanan tek JSON örneğini tanımlar, basitlik için her yerde kutulanmış (boxed) tipler kullanır (dolayısıyla int/double/boolean gibi ilkel alan yoktur) ve bir constructor, equals/hashCode, toString veya herhangi bir JSON (de)serileştirme annotation'ı içermez — buna ihtiyacınız varsa Jackson veya Gson gibi bir kütüphane ekleyin.
Gizlilik
Ayrıştırma ve kod üretimi tamamen tarayıcınızda yerel çalışır. Yapıştırdığınız JSON ve ürettiğiniz Java asla yüklenmez.
Sıkça Sorulan Sorular
- Üretilen sınıflar bir JSON kütüphanesi annotation'ı içeriyor mu?
- Hayır — bunlar private alanlara ve getter/setter'lara sahip düz POJO'lardır; gerçek JSON (de)serileştirmesi için Jackson veya Gson gibi bir kütüphaneyle eşleştirin.
- Alanlar neden int/double yerine Integer/Double?
- Kutulanmış tipler, null olabilecek alanlar için bile üretilen kodu basit ve tutarlı tutar, bunun karşılığında küçük bir autoboxing yükü olur.
- JSON'um bir sunucuya gönderiliyor mu?
- Hayır — ayrıştırma ve Java üretimi tamamen tarayıcınızda yerel olarak gerçekleşir.