EzyFox Binding Introduction
EzyFox Binding is a library for marshal POJO to EzyObject or EzyArray and unmarshal EzyObject and EzyArray to POJO.
1. Structure of EzyFox Binding

- EzyBindingContext: a composite object, it creates EzyMashaller and EzyUnmashaller object
- EzyMashaller: a composite object, it manages EzyWriter objects
- EzyUnmashaller: a composite object, it manages EzyReader objects
- EzyWriter: convert a POJO to EzyArray or EzyObject
- EzyReader: convert a EzyArray or EzyObject to POJO
EzyFox Binding also has many annotations and you can find out theme here.
2. Install EzyFox Binding
You can add to your dependency like this:
<dependency>
<groupId>com.tvd12</groupId>
<artifactId>ezyfox-binding</artifactId>
<version>1.2.7</version>
</dependency>
The latest version can be found in the Maven Central repository.
3. Create a EzyBindingContext
To create a EzyBindingContext you just need provide packages and EzyFox Binding will scan and create EzyReader, EzyWriter for which classes that's annotated by
@EzyArrayBinding
or @EzyObjectBinding
annotations, example: final EzyBindingContext bindingContext = EzyBindingContext.builder()
.scan("com.tvd12.ezyfox.example.binding")
.build();
4. Marshal an POJO
To marshal a POJO you need create a EzyMarshaller instance first, please remember you just need create only one EzyMarshaller instance. And then use
marshal
function to do. For which class's annotated with @EzyArrayBinding
, it will be marshalled to EzyArray. For which class's annotated with @EzyObjectBinding
, it will be marshalled to EzyObject, example: package com.tvd12.ezyfox.example.binding.data;
import com.tvd12.ezyfox.binding.annotation.EzyArrayBinding;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@EzyArrayBinding
@AllArgsConstructor
@NoArgsConstructor
public class Author {
private long id;
private String name;
}
package com.tvd12.ezyfox.example.binding.data;
import com.tvd12.ezyfox.binding.annotation.EzyObjectBinding;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@EzyObjectBinding
@AllArgsConstructor
@NoArgsConstructor
public class Book {
private long id;
private String name;
private long authorId;
}
final EzyMarshaller marshaller = bindingContext.newMarshaller();
final EzyObject bookMap = marshaller
.marshal(new Book(1, "EzyFox in Action", 1));
System.out.println("bookMap: " + bookMap);
final EzyArray authorArray = marshaller
.marshal(new Author(1, "Young Monkeys"));
System.out.println("authorArray: " + authorArray);
5. Unmarshal a value
To unmarshal a value to POJO you need create a EzyUnmarshaller instance first, please remember you just need create only one EzyUnmarshaller instance. And then use
unmarshal
function to do. For which class's annotated with @EzyArrayBinding
, it will be unmarshalled form a EzyArray. For which class's annotated with @EzyObjectBinding
, it will be unmarshalled form a EzyObject, example: final EzyUnmarshaller unmarshaller = bindingContext.newUnmarshaller();
final Book book = unmarshaller.unmarshal(bookMap, Book.class);
System.out.println("book: " + book);
final Author author = unmarshaller.unmarshal(authorArray, Author.class);
System.out.println("author: " + author);