blob: efa0bc918d5677f501c262c62466a23261aba04a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
package com.fasterxml.jackson.databind.struct;
import java.util.*;
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.*;
public class PojoAsArray646Test extends BaseMapTest
{
@JsonFormat(shape = JsonFormat.Shape.ARRAY)
@JsonPropertyOrder(alphabetic = true)
static class Outer {
protected Map<String, TheItem> attributes;
public Outer() {
attributes = new HashMap<String, TheItem>();
}
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_ARRAY)
public Map<String, TheItem> getAttributes() {
return attributes;
}
}
@JsonFormat(shape = JsonFormat.Shape.ARRAY)
@JsonPropertyOrder(alphabetic = true)
static class TheItem {
@JsonFormat(shape = JsonFormat.Shape.ARRAY)
@JsonPropertyOrder(alphabetic = true)
public static class NestedItem {
public String nestedStrValue;
@JsonCreator
public NestedItem(@JsonProperty("nestedStrValue") String nestedStrValue) {
this.nestedStrValue = nestedStrValue;
}
}
private String strValue;
private boolean boolValue;
private List<NestedItem> nestedItems;
@JsonCreator
public TheItem(@JsonProperty("strValue") String strValue, @JsonProperty("boolValue") boolean boolValue, @JsonProperty("nestedItems") List<NestedItem> nestedItems) {
this.strValue = strValue;
this.boolValue = boolValue;
this.nestedItems = nestedItems;
}
public String getStrValue() {
return strValue;
}
public void setStrValue(String strValue) {
this.strValue = strValue;
}
public boolean isBoolValue() {
return boolValue;
}
public void setBoolValue(boolean boolValue) {
this.boolValue = boolValue;
}
public List<NestedItem> getNestedItems() {
return nestedItems;
}
public void setNestedItems(List<NestedItem> nestedItems) {
this.nestedItems = nestedItems;
}
}
/*
/**********************************************************
/* Tests
/**********************************************************
*/
private final ObjectMapper MAPPER = new ObjectMapper();
public void testWithCustomTypeId() throws Exception {
List<TheItem.NestedItem> nestedList = new ArrayList<TheItem.NestedItem>();
nestedList.add(new TheItem.NestedItem("foo1"));
nestedList.add(new TheItem.NestedItem("foo2"));
TheItem item = new TheItem("first", false, nestedList);
Outer outer = new Outer();
outer.getAttributes().put("entry1", item);
String json = MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(outer);
Outer result = MAPPER.readValue(json, Outer.class);
assertNotNull(result);
assertNotNull(result.attributes);
assertEquals(1, result.attributes.size());
}
}
|