Part 0: first serialise/deserialise round-trip
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package com.ankurm.jackson3.part0setup;
|
||||
|
||||
import tools.jackson.databind.json.JsonMapper;
|
||||
|
||||
/**
|
||||
* Post: Jackson 101 — https://ankurm.com/jackson-java-tutorial/
|
||||
* Section: "Your First Serialise/Deserialise Example"
|
||||
*
|
||||
* The simplest possible Jackson 3 round-trip: a POJO out to JSON and back.
|
||||
*/
|
||||
public class A01FirstRoundTrip {
|
||||
|
||||
/** A plain POJO with getters and setters — the classic Jackson shape. */
|
||||
public static class ProductSummary {
|
||||
private Long productId;
|
||||
private String productName;
|
||||
private double listPrice;
|
||||
|
||||
public ProductSummary() { } // needed for deserialisation
|
||||
public ProductSummary(Long id, String name, double price) {
|
||||
this.productId = id; this.productName = name; this.listPrice = price;
|
||||
}
|
||||
public Long getProductId() { return productId; }
|
||||
public String getProductName() { return productName; }
|
||||
public double getListPrice() { return listPrice; }
|
||||
public void setProductId(Long v) { this.productId = v; }
|
||||
public void setProductName(String v) { this.productName = v; }
|
||||
public void setListPrice(double v) { this.listPrice = v; }
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
// Jackson 3: JsonMapper.builder().build() replaces `new ObjectMapper()`.
|
||||
// The result is IMMUTABLE — you cannot reconfigure it afterwards.
|
||||
JsonMapper mapper = JsonMapper.builder().build();
|
||||
|
||||
// Serialise: Java object -> JSON string
|
||||
ProductSummary product = new ProductSummary(1L, "Mechanical Keyboard", 79.99);
|
||||
String jsonOutput = mapper.writeValueAsString(product);
|
||||
System.out.println(jsonOutput);
|
||||
|
||||
// Deserialise: JSON string -> Java object
|
||||
ProductSummary restored = mapper.readValue(jsonOutput, ProductSummary.class);
|
||||
System.out.println(restored.getProductName());
|
||||
|
||||
// Note: no `throws` clause anywhere in this method. In Jackson 3 the
|
||||
// exception hierarchy is rooted at JacksonException extends RuntimeException,
|
||||
// so serialisation failures are UNCHECKED. See beyond/Y01UncheckedExceptions.
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user