diff --git a/src/main/java/com/ankurm/jackson3/part1objectmapper/B01WriteJson.java b/src/main/java/com/ankurm/jackson3/part1objectmapper/B01WriteJson.java new file mode 100644 index 0000000..b28c1bb --- /dev/null +++ b/src/main/java/com/ankurm/jackson3/part1objectmapper/B01WriteJson.java @@ -0,0 +1,39 @@ +package com.ankurm.jackson3.part1objectmapper; + +import tools.jackson.databind.json.JsonMapper; + +import java.io.File; +import java.nio.file.Files; +import java.util.List; + +/** + * Post: Jackson ObjectMapper Guide — https://ankurm.com/jackson-objectmapper-guide/ + * Section: "Serialising Java Objects to JSON" + * + * Every write target: String, File, and pretty-printed String. + */ +public class B01WriteJson { + + public record Article(Long articleId, String title, List tags) { } + + public static void main(String[] args) throws Exception { + JsonMapper mapper = JsonMapper.builder().build(); + Article article = new Article(1L, "Jackson Deep Dive", List.of("java", "json")); + + // 1. Write to a String + String jsonOutput = mapper.writeValueAsString(article); + System.out.println(jsonOutput); + + // 2. Write to a File + File target = File.createTempFile("article", ".json"); + mapper.writeValue(target, article); + System.out.println("file : " + Files.readString(target.toPath())); + + // 3. Pretty-printed output + String pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(article); + System.out.println("pretty :"); + System.out.println(pretty); + + target.deleteOnExit(); + } +}