support Stack

This commit is contained in:
wenshao 2025-10-01 07:14:15 +08:00
parent bfe2146b33
commit a3bb9d24f6
2 changed files with 39 additions and 1 deletions

View File

@ -1941,6 +1941,7 @@ public class ObjectReaderBaseModule
|| type == AbstractCollection.class
|| type == AbstractList.class
|| type == ArrayList.class
|| type == Stack.class
) {
return ObjectReaderImplList.of(type, null, 0);
// return new ObjectReaderImplList(type, (Class) type, ArrayList.class, Object.class, null);
@ -2121,7 +2122,8 @@ public class ObjectReaderBaseModule
|| rawType == List.class
|| rawType == AbstractCollection.class
|| rawType == AbstractList.class
|| rawType == ArrayList.class) {
|| rawType == ArrayList.class
|| rawType == Stack.class) {
if (itemClass == String.class) {
return new ObjectReaderImplListStr((Class) rawType, ArrayList.class);
} else if (itemClass == Long.class) {

View File

@ -0,0 +1,36 @@
package com.alibaba.fastjson2.codec;
import com.alibaba.fastjson2.JSON;
import lombok.Data;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Stack;
public class StackTest {
@Test
public void test() {
Stack<Node> nodestack = new Stack<>();
Node node = new Node();
node.setName("bb");
nodestack.push(node);
String str = JSON.toJSONString(nodestack);
Stack result = JSON.parseObject(str, new com.alibaba.fastjson2.TypeReference<Stack<Node>>() {
});
System.out.println(result);
}
@Data
public static class Node
extends HashMap<String, Object> {
private String getName() {
return this.get("name").toString();
}
public void setName(String name) {
this.put("name", name);
}
}
}