【问题标题】:Could not write JSON generic object无法写入 JSON 通用对象
【发布时间】:2015-03-25 19:26:00
【问题描述】:

当我尝试返回一个通用对象时,我遇到了一个异常:

@RequestMapping(value="/administration/get_stat_all") 
public @ResponseBody
List<StatAllBean<String>>  get_stat_all(..) {

List<StatAllBean<String>> all_stats = new ArrayList<StatAllBean<String>>();
....
return all_stats ;

这是我的对象:

public class StatAllBean<T> {

    public Map<T, Long> totalMap ;
    public Date date;

例外:

19:14:56.366 [http-nio-8080-exec-9] DEBUG org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolving exception from handler [<java.lang.reflect.MalformedParameterizedTypeException>]: org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: (was java.lang.NullPointerException) (through reference chain: java.util.ArrayList[0]); nested exception is org.codehaus.jackson.map.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: java.util.ArrayList[0])

【问题讨论】:

    标签: java ajax json spring-mvc


    【解决方案1】:

    all_stats 列表是一个空列表,您需要检查一下:

    return ( all_stats.isEmpty() ? null : all_stats );
    

    【讨论】:

    【解决方案2】:

    这是一个很大的提示“无法编写 JSON:(是 java.lang.NullPointerException”

    看起来像你传递的东西是空的。您是否在使用前初始化地图变量“totalMap”?

    【讨论】:

      【解决方案3】:

      答案是here,所以我编辑了我的对象,就像这样:

      public class StatAllBean<T> {
      
          public Map<T, Long> totalMap ;
          public Date date;
      
      
          @JsonCreator
          public StatAllBean(Date date , @JsonProperty("totalMap")  Map<T, Long> totalMap){
              this.date = date;
              this.totalMap = totalMap;
      
          }
          ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-01
        • 1970-01-01
        • 2021-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-29
        相关资源
        最近更新 更多