javascript
认识适配器:JSON绑定概述系列
適配器通過實現(xiàn)JsonbAdapter接口來配置自定義對象的創(chuàng)建和序列化。 方法AdaptToJson()和AdaptFromJson()被執(zhí)行序列化和反序列化操作的邏輯覆蓋。
下一篇文章介紹了使用自定義序列化器和反序列化器自定義JSON-B的最高級方法。
在此處的示例實現(xiàn)中,已經(jīng)使用代碼實現(xiàn)了AdaptToJson()方法,該代碼使用JSON Processing API中的JSON對象構(gòu)建器將Booklet對象轉(zhuǎn)換為JsonObject 。 AdaptFromJson()方法從JsonObject實例構(gòu)造Booklet對象。
public class BookletAdapter implements JsonbAdapter<Booklet, JsonObject> {@Overridepublic JsonObject adaptToJson(Booklet booklet) {return Json.createObjectBuilder().add("title", booklet.getTitle()).add("firstName", booklet.getAuthor().getFirstName()).add("lastName", booklet.getAuthor().getLastName()).build();}@Overridepublic Booklet adaptFromJson(JsonObject json) {Booklet booklet = new Booklet(json.getString("title"),new Author(json.getString("firstName"),json.getString("lastName")));return booklet;} }如您所見, AdaptToJson()方法將Author對象展平為兩個屬性: firstName和lastName 。 AdaptFromJson()方法將重建Author對象并輸出Booklet實例。
JsonbAdapter非常靈活,可用于自定義單個字段以及整個對象的序列化和反序列化 。
這是通過標記應使用JsonbTypeAdapter注釋自定義的字段,方法或類并將其傳遞給要使用的JsonbAdapter的類名來實現(xiàn)的。
此處顯示了示例實現(xiàn) 。 firstName字段標記有JsonbTypeAdapter批注和指定為適配器的FirstNameAdapter類。
public class Author {@JsonbTypeAdapter(FirstNameAdapter.class)private String firstName; }public class FirstNameAdapter implements JsonbAdapter<String, JsonValue> {@Overridepublic JsonValue adaptToJson(String fullName) {return Json.createValue(fullName.subSequence(0, 1).toString());}@Overridepublic String adaptFromJson(JsonValue json) {return json.toString();}}最后,這是使用自定義序列化器和反序列化器自定義JSON-B的最先進方法。
除了我在這些博客文章中討論的內(nèi)容之外,關于JSON Binding API還有更多的知識要知道。
翻譯自: https://www.javacodegeeks.com/2018/05/get-to-know-adapters-json-binding-overview-series.html
總結(jié)
以上是生活随笔為你收集整理的认识适配器:JSON绑定概述系列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谢特是什么意思关于 谢特是什么意思
- 下一篇: 苹果13怎么设置陌生号码拦截