|
9 | 9 | import com.fasterxml.jackson.core.*;
|
10 | 10 | import com.fasterxml.jackson.databind.*;
|
11 | 11 | import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
|
| 12 | +import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonArrayFormatVisitor; |
| 13 | +import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatTypes; |
| 14 | +import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable; |
12 | 15 | import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
|
13 | 16 | import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonMapFormatVisitor;
|
14 | 17 | import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
|
@@ -385,12 +388,25 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
|
385 | 388 | if (v2 != null) {
|
386 | 389 | v2.keyFormat(_keySerializer, _type.getKeyType());
|
387 | 390 | JsonSerializer<?> valueSer = _valueSerializer;
|
388 |
| - JavaType vt = _type.getContentType(); |
| 391 | + final JavaType vt = _type.getContentType(); |
| 392 | + final SerializerProvider prov = visitor.getProvider(); |
389 | 393 | if (valueSer == null) {
|
390 |
| - valueSer = _findAndAddDynamic(_dynamicValueSerializers, |
391 |
| - vt, visitor.getProvider()); |
| 394 | + valueSer = _findAndAddDynamic(_dynamicValueSerializers, vt, prov); |
392 | 395 | }
|
393 |
| - v2.valueFormat(valueSer, vt); |
| 396 | + final JsonSerializer<?> valueSer2 = valueSer; |
| 397 | + v2.valueFormat(new JsonFormatVisitable() { |
| 398 | + final JavaType arrayType = prov.getTypeFactory().constructArrayType(vt); |
| 399 | + @Override |
| 400 | + public void acceptJsonFormatVisitor( |
| 401 | + JsonFormatVisitorWrapper v3, JavaType hint3) |
| 402 | + throws JsonMappingException |
| 403 | + { |
| 404 | + JsonArrayFormatVisitor v4 = v3.expectArrayFormat(arrayType); |
| 405 | + if (v4 != null) { |
| 406 | + v4.itemsFormat(valueSer2, vt); |
| 407 | + } |
| 408 | + } |
| 409 | + }, vt); |
394 | 410 | }
|
395 | 411 | }
|
396 | 412 |
|
|
0 commit comments