Fastjson API SerializeFilter
Pengenalan kepada Fastjson API SerializeFilter
SerializeFilter menyesuaikan siri melalui sambungan program. fastjson menyokong 6 jenis SerializeFilter untuk bersiri tersuai dalam senario yang berbeza.
- PropertyPrefilter Menentukan sama ada untuk bersiri berdasarkan nama propertyName
- PropertyFilter menentukan sama ada untuk bersiri berdasarkan nama propertyname dan propertyValue
- NameFilter mengubahsuai kunci, jika anda perlu mengubah suai kunci, proses pulangan proses
- ValueFilter mengubah nilai
- Sebelum Tapis semasa penyirian Tambah kandungan di hadapan
- Selepas Penapis Tambah kandungan di penghujung semasa penyirian
diperlukan untuk dilanjutkan objek atau nama atribut atau perubahan nilai atribut. Contohnya: Penapis Harta Tentukan sama ada untuk bersiri berdasarkan PropertyName dan PropertyCreee bedasarkan
public interface PropertyFilter extends SerializeFilter { boolean apply(Object object, String propertyName, Object propertyValue); }
adalah berbeza daripada PropertyFilter yang hanya menentukan berdasarkan objek dan nama sebelum memanggil getter, dengan itu mengelakkan kemungkinan pengecualian dalam panggilan getter.
PropertyFilter filter = new PropertyFilter() { public boolean apply(Object source, String name, Object value) { if ("id".equals(name)) { int id = ((Integer) value).intValue(); return id >= 100; } return false; } }; JSON.toJSONString(obj, filter); // 序列化的时候传入filter
Jika anda perlu mengubah suai Kunci, proses nilai pulangan boleh
public interface PropertyPreFilter extends SerializeFilter { boolean apply(JSONSerializer serializer, Object object, String name); }
fastjson mempunyai PascalNameFilter terbina dalam, yang digunakan untuk mengeluarkan gaya Pascal dengan aksara pertama dengan huruf besar. Contohnya:
public interface NameFilter extends SerializeFilter { String process(Object object, String propertyName, Object propertyValue); }
ValueFilter Serialisasi adalah untuk mengubah suai Value
import com.alibaba.fastjson.serializer.PascalNameFilter; Object obj = ...; String jsonStr = JSON.toJSONString(obj, new PascalNameFilter());
Sebelum Penapis Tambah kandungan di hadapan semasa mensirikan
operasi tertentu bagi Vlue. untuk menambah Kandungan
public interface ValueFilter extends SerializeFilter {
Object process(Object object, String propertyName, Object propertyValue);
}
AfterFilter menambah kandungan pada penghujung apabila mensiri melakukan operasi tertentu selepas mensiri semua sifat objek, seperti memanggil writeKeyValue untuk menambah kandungan