List<String> 属性无法转json返回前端


public class Demo {
    private List<String> list;
}

 @GetMapping(value = "/demo")
     public Result<?> demo() {
        List<String> s = new ArrayList<>();
         s.add("1");
        s.add("2");
         Demo demo = new Demo();
         demo.setList(s);
        return Result.OK(demo);
     }

{
    "success": false,
    "message": "操作失败,can not cast to JSONObject.",
    "code": 500,
    "result": null,
    "timestamp": 1632729874395
}

但是外面封装一层就可以

public class DemoVO {
    private Demo demo;
}
public class Demo {
    private List<String> list;
}
 @GetMapping(value = "/demo")
     public Result<?> demo() {
        List<String> s = new ArrayList<>();
         s.add("1");
        s.add("2");
         Demo demo = new Demo();
         demo.setList(s);
         DemoVO demoVO = new DemoVO();
         demoVO.setDemo(demo);
        return Result.OK(demoVO);
     }

{
    "success": true,
    "message": "操作成功!",
    "code": 200,
    "result": {
        "demo": {
            "list": [
                "1",
                "2"
            ]
        }
    },
    "timestamp": 1632730217519
}

各位有知道是啥原因的吗?

我比较在意你第一次报错的日志

Result类所有属性和方法贴出来,要不然无法定位,按理说不会有问题的

根据 Result类有关 应该设置的泛型有问题 导致普通对象能转化json List不能转化为json

抛异常的地方打个断点

at org.jeecg.common.aspect.DictAspect.parseDictText(DictAspect.java:291)
貌似这里有bug,
DictAspect.java:291里在解析最外层对象对list处理,和内层对象对list处理不一致。
解决方法:给DictAspect.java提bug,或者按你的做法包一层对象。


这里的251-262行参考一下
https://github.com/alibaba/fastjson/blob/master/src/main/java/com/alibaba/fastjson/JSON.java