20
20
import com .fasterxml .jackson .databind .node .ArrayNode ;
21
21
import com .fasterxml .jackson .databind .node .BaseJsonNode ;
22
22
import com .fasterxml .jackson .databind .node .BooleanNode ;
23
+ import com .fasterxml .jackson .databind .node .NullNode ;
23
24
import com .fasterxml .jackson .databind .node .NumericNode ;
24
25
import com .fasterxml .jackson .databind .node .ObjectNode ;
25
26
import com .fasterxml .jackson .databind .node .TextNode ;
26
27
import com .fasterxml .jackson .databind .node .ValueNode ;
27
28
28
29
import com .vaadin .flow .internal .ConstantPool ;
29
30
import com .vaadin .flow .internal .JacksonCodec ;
31
+ import com .vaadin .flow .internal .JacksonUtils ;
30
32
import com .vaadin .flow .internal .JsonCodec ;
31
33
import com .vaadin .flow .internal .StateNode ;
32
34
import com .vaadin .flow .internal .nodefeature .NodeFeature ;
@@ -100,6 +102,9 @@ protected void populateJson(JsonObject json, ConstantPool constantPool) {
100
102
} else if (value instanceof ObjectNode node ) {
101
103
json .put (JsonConstants .CHANGE_PUT_VALUE , Json .parse (JacksonCodec
102
104
.encodeWithConstantPool (node , constantPool ).toString ()));
105
+ } else if (value instanceof NullNode ) {
106
+ json .put (JsonConstants .CHANGE_PUT_VALUE ,
107
+ JsonCodec .encodeWithConstantPool (null , constantPool ));
103
108
} else if (value instanceof NumericNode node ) {
104
109
json .put (JsonConstants .CHANGE_PUT_VALUE , Json .create (JacksonCodec
105
110
.encodeWithConstantPool (node , constantPool ).doubleValue ()));
@@ -111,9 +116,13 @@ protected void populateJson(JsonObject json, ConstantPool constantPool) {
111
116
} else if (value instanceof TextNode node ) {
112
117
json .put (JsonConstants .CHANGE_PUT_VALUE , Json .create (JacksonCodec
113
118
.encodeWithConstantPool (node , constantPool ).textValue ()));
114
- } else if (value instanceof BaseJsonNode node ) {
119
+ } else if (value instanceof ValueNode node ) {
115
120
json .put (JsonConstants .CHANGE_PUT_VALUE , Json .create (JacksonCodec
116
121
.encodeWithConstantPool (node , constantPool ).toString ()));
122
+ } else if (value instanceof ArrayNode node ) {
123
+ json .put (JsonConstants .CHANGE_PUT_VALUE ,
124
+ JacksonUtils .createElementalArray ((ArrayNode ) JacksonCodec
125
+ .encodeWithConstantPool (node , constantPool )));
117
126
} else {
118
127
json .put (JsonConstants .CHANGE_PUT_VALUE ,
119
128
JsonCodec .encodeWithConstantPool (value , constantPool ));
0 commit comments