Jackson 3 series companion code
37 runnable examples covering the eight feature posts on ankurm.com, verified against Jackson 3.2.1 on Temurin 21.0.5. Every output committed under docs/ was produced by run-all.sh. Also documents 11 places where the published snippets do not compile or do not behave as printed against a real Jackson 3 build - most notably that writeValueAsString(List<Base>) silently drops the polymorphic type discriminator, so the post's serialised output cannot be read back.
This commit is contained in:
20
docs/output/F01SerialiseMixedList.txt
Normal file
20
docs/output/F01SerialiseMixedList.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
--- 1. single element: discriminator present ---
|
||||
{"paymentType":"credit_card","amountDue":99.99,"cardNetwork":"VISA","cardNumberLastFour":"4242","paymentId":1}
|
||||
--- 2. BROKEN: writeValueAsString(List) drops paymentType ---
|
||||
[{"amountDue":99.99,"cardNetwork":"VISA","cardNumberLastFour":"4242","paymentId":1},{"amountDue":250.0,"bankAccountIban":"GB29NWBK60161331926819","bankName":"National Bank","paymentId":2}]
|
||||
--- 3. FIX A: writerFor(TypeReference) ---
|
||||
[ {
|
||||
"paymentType" : "credit_card",
|
||||
"amountDue" : 99.99,
|
||||
"cardNetwork" : "VISA",
|
||||
"cardNumberLastFour" : "4242",
|
||||
"paymentId" : 1
|
||||
}, {
|
||||
"paymentType" : "bank_transfer",
|
||||
"amountDue" : 250.0,
|
||||
"bankAccountIban" : "GB29NWBK60161331926819",
|
||||
"bankName" : "National Bank",
|
||||
"paymentId" : 2
|
||||
} ]
|
||||
--- 4. FIX B: a typed array carries its component type ---
|
||||
[{"paymentType":"credit_card","amountDue":99.99,"cardNetwork":"VISA","cardNumberLastFour":"4242","paymentId":1},{"paymentType":"bank_transfer","amountDue":250.0,"bankAccountIban":"GB29NWBK60161331926819","bankName":"National Bank","paymentId":2}]
|
||||
Reference in New Issue
Block a user