数组类型转json字符串设置WriteClassName后反序列化失败 (#3217)
* 数组类型转json字符串设置WriteClassName后反序列化失败 --------- Co-authored-by: zhengshiyu1 <zhengshiyu@jd.com>
This commit is contained in:
parent
3f5df1bcff
commit
a424be0d9c
@ -102,8 +102,8 @@ public final class ObjectReaderImplObject
|
||||
contextClass = classLoader.loadClass(typeName);
|
||||
} catch (ClassNotFoundException ignored) {
|
||||
}
|
||||
|
||||
if (!objectClass.equals(contextClass)) {
|
||||
//明确contextClass类型与objectClass不一致时才更改reader
|
||||
if (contextClass != null && !objectClass.equals(contextClass)) {
|
||||
autoTypeObjectReader = context.getObjectReader(contextClass);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,27 @@
|
||||
package com.alibaba.fastjson2.issues_3200;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.serializer.SerializeConfig;
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class Issue3208 {
|
||||
@Test
|
||||
public void testArray() {
|
||||
byte[] bytes = new byte[]{1, 2, 3};
|
||||
String jsonString = JSON.toJSONString(bytes, SerializerFeature.WriteClassName);
|
||||
byte[] bytes1 = (byte[]) JSON.parse(jsonString);
|
||||
Assertions.assertTrue(Arrays.equals(bytes, bytes1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testObjectArray() {
|
||||
byte[] jsonBytes = JSON.toJSONBytes(new Object[]{JSON.toJSONString(ImmutableMap.of("a", 1))}, new SerializeConfig(true), JSON.DEFAULT_GENERATE_FEATURE, SerializerFeature.WriteClassName);
|
||||
Object parsed = JSON.parse(new String(jsonBytes));
|
||||
Assertions.assertNotNull(parsed);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user