Bird
Raised Fist0
Spring Bootframework~20 mins

Message serialization in Spring Boot - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Message Serialization Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this Spring Boot REST controller method?
Consider a Spring Boot REST controller method that returns a Java object. What will the HTTP response body contain?
Spring Boot
record User(String name, int age) {}

@RestController
public class UserController {
    @GetMapping("/user")
    public User getUser() {
        return new User("Alice", 30);
    }
}
AA plain text string: User(name=Alice, age=30)
BA JSON string: {"name":"Alice","age":30}
CAn XML string representing the User object
DA binary serialized Java object
Attempts:
2 left
💡 Hint
Spring Boot uses Jackson by default to convert Java objects to JSON in REST responses.
📝 Syntax
intermediate
1:30remaining
Which annotation enables JSON serialization of a Java class in Spring Boot?
You want to ensure a Java class is serialized to JSON correctly in Spring Boot REST responses. Which annotation should you use?
A@JsonInclude
B@JsonSerializable
C@JsonProperty
D@JsonIgnoreProperties
Attempts:
2 left
💡 Hint
This annotation controls which properties are included during serialization.
🔧 Debug
advanced
2:30remaining
Why does this Spring Boot REST method return an empty JSON object?
Given this code, why does the HTTP response body show {} instead of the expected data? public class Product { private String name; private double price; public Product(String name, double price) { this.name = name; this.price = price; } } @RestController public class ProductController { @GetMapping("/product") public Product getProduct() { return new Product("Book", 12.99); } }
AThe @GetMapping path is incorrect, causing no data to be returned.
BThe Product constructor is private, so the object cannot be created.
CThe Product class lacks public getters for its fields, so Jackson cannot serialize them.
DThe @RestController annotation is missing on the controller class.
Attempts:
2 left
💡 Hint
Jackson needs access to fields via getters or public fields to serialize.
🧠 Conceptual
advanced
2:00remaining
What is the role of the MessageConverter in Spring Boot serialization?
In Spring Boot, what does the HttpMessageConverter do during REST API calls?
AIt handles user authentication and authorization.
BIt manages database connections for REST endpoints.
CIt compiles Java code into bytecode at runtime.
DIt converts HTTP requests and responses to and from Java objects.
Attempts:
2 left
💡 Hint
Think about how data moves between HTTP and Java objects.
❓ state_output
expert
3:00remaining
What is the JSON output of this Spring Boot controller with custom serialization?
Given this code, what JSON will the /order endpoint return? public class Order { private int id; private double amount; public Order(int id, double amount) { this.id = id; this.amount = amount; } @JsonProperty("order_id") public int getId() { return id; } @JsonIgnore public double getAmount() { return amount; } } @RestController public class OrderController { @GetMapping("/order") public Order getOrder() { return new Order(101, 250.75); } }
A{"order_id":101}
B{"id":101,"amount":250.75}
C{"order_id":101,"amount":250.75}
D{}
Attempts:
2 left
💡 Hint
Look at the @JsonProperty and @JsonIgnore annotations on getters.

Practice

(1/5)
1. What is the main purpose of message serialization in Spring Boot?
easy
A. To handle user authentication and authorization
B. To compile Java code into bytecode
C. To convert objects into a format like JSON for easy data sharing
D. To manage database connections automatically

Solution

  1. Step 1: Understand serialization concept

    Serialization means converting an object into a format that can be sent or stored, like JSON.
  2. Step 2: Relate to Spring Boot usage

    Spring Boot uses serialization to send Java objects as JSON in REST APIs.
  3. Final Answer:

    To convert objects into a format like JSON for easy data sharing -> Option C
  4. Quick Check:

    Serialization = Convert objects to JSON [OK]
Hint: Serialization means turning objects into JSON or similar formats [OK]
Common Mistakes:
  • Confusing serialization with compiling code
  • Thinking serialization manages databases
  • Mixing serialization with security features
2. Which of the following is the correct way to ensure a Java class is serializable by Spring Boot's default JSON serializer?
easy
A. Use @Entity annotation on the class
B. Make the class implement Serializable interface
C. Mark all fields as transient
D. Add public getters for all fields and a no-argument constructor

Solution

  1. Step 1: Identify Spring Boot serialization requirements

    Spring Boot uses Jackson which requires public getters and a no-argument constructor to serialize objects properly.
  2. Step 2: Evaluate options

    Implementing Serializable is not required for JSON serialization. Marking fields transient prevents serialization. @Entity is for database mapping, not serialization.
  3. Final Answer:

    Add public getters for all fields and a no-argument constructor -> Option D
  4. Quick Check:

    Getters + no-arg constructor = JSON serialization [OK]
Hint: Public getters and no-arg constructor enable JSON serialization [OK]
Common Mistakes:
  • Thinking Serializable interface is needed for JSON
  • Marking fields transient disables serialization
  • Confusing @Entity with serialization setup
3. Given the following Spring Boot controller method, what will be the JSON output when accessing /user?
public record User(String name, int age) {}
@GetMapping("/user")
public User getUser() {
    return new User("Alice", 30);
}
medium
A. ["Alice",30]
B. {"name":"Alice","age":30}
C. {"User":{"name":"Alice","age":30}}
D. Error: Records cannot be serialized

Solution

  1. Step 1: Understand record serialization in Spring Boot

    Spring Boot with Jackson supports Java records and serializes them as JSON objects with field names.
  2. Step 2: Predict output for User record

    The record fields 'name' and 'age' become JSON keys with their values.
  3. Final Answer:

    {"name":"Alice","age":30} -> Option B
  4. Quick Check:

    Records serialize as JSON objects with fields [OK]
Hint: Java records serialize as JSON objects with field names [OK]
Common Mistakes:
  • Expecting JSON array instead of object
  • Thinking records cause serialization errors
  • Assuming nested JSON with class name
4. Consider this Spring Boot REST controller snippet:
@GetMapping("/product")
public Product getProduct() {
    return new Product("Book", null);
}

public class Product {
    private String name;
    private String description;

    public Product(String name, String description) {
        this.name = name;
        this.description = description;
    }

    public String getName() { return name; }
    // Missing getter for description
}
What issue will occur when this endpoint is called?
medium
A. The JSON will include only the name field; description is missing
B. The JSON will include both name and description fields
C. A runtime error occurs due to missing getter
D. The endpoint will not compile

Solution

  1. Step 1: Check serialization requirements

    Jackson serializes fields using public getters. Missing getter means that field is ignored in JSON output.
  2. Step 2: Analyze given code

    Product class lacks getter for 'description', so JSON will only show 'name'. No runtime error or compile error occurs.
  3. Final Answer:

    The JSON will include only the name field; description is missing -> Option A
  4. Quick Check:

    Missing getter = field omitted in JSON [OK]
Hint: Missing getter means field won't appear in JSON output [OK]
Common Mistakes:
  • Expecting runtime or compile error
  • Assuming all fields serialize without getters
  • Thinking null values cause errors
5. You want to customize JSON serialization in Spring Boot to exclude fields with null values from the output. Which approach is correct?
hard
A. Configure Jackson's ObjectMapper to set SerializationInclusion to NON_NULL
B. Mark all nullable fields as transient
C. Remove getters for nullable fields
D. Use @JsonIgnore on all fields

Solution

  1. Step 1: Understand how to exclude null fields in JSON

    Jackson allows configuration to exclude null fields by setting SerializationInclusion to NON_NULL.
  2. Step 2: Evaluate options

    Marking fields transient or removing getters prevents serialization entirely, not just null exclusion. @JsonIgnore excludes fields always.
  3. Final Answer:

    Configure Jackson's ObjectMapper to set SerializationInclusion to NON_NULL -> Option A
  4. Quick Check:

    Set SerializationInclusion = NON_NULL to skip nulls [OK]
Hint: Set ObjectMapper to exclude nulls with NON_NULL inclusion [OK]
Common Mistakes:
  • Using transient to exclude nulls (excludes always)
  • Removing getters breaks serialization
  • Using @JsonIgnore excludes fields always
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard