【问题标题】:cannot serialize interface object to json using jakson无法使用杰克逊将接口对象序列化为 json
【发布时间】:2019-07-03 07:27:08
【问题描述】:

我正在尝试根据 API 声明的模式使用 jakson 将 java 对象转换为 json。 但我想不通。 我该怎么做?

这是我的课程

ProcessValueBaseDto

package com.ir.tsn;
public class ProcessValueBaseDto implements Serializable {

private String id;
private ProcessValue value;

}
//methods Ommited

过程值

package com.ir.tsn;
public interface ProcessValue<T> extends Serializable {

void setValues(T values);

}
//methods Ommited

ProcessValueDto

package com.ir.tsn;
public class ProcessValueDto implements 
ProcessValue<List<String>> {

private List<String> values;

}
//methods Ommited

预期的 json 应该是这样的

{
   "id": "id1",
   "value": {
          "com.alz.ProcessValueDto": {
            "values": [
              "500000000"
            ]
          }
   }
}

com.alz.ProcessValueDto 是 API 中 ProcessValue.class 实现之一的名称

提前谢谢你

【问题讨论】:

    标签: java json spring web serialization


    【解决方案1】:

    我无法真正理解这个问题,但我从您发布的代码中看到的一个问题是您有两个同名的类。此外,如果代码都在同一个文件中,则应将其拆分,因为同一文件中不能有多个公共类或接口。

    【讨论】:

    • 对不起,我在解释课程方面做得不好。我纠正了这一点。但这不是代码中的问题。
    • 我们还需要更多信息,您是否收到错误消息?错误的 json?
    【解决方案2】:

    您可以对给定的 JSON 使用以下给定的类。

    public class MyValue
    {
        public List<string> values { get; set; }
    }
    
    public class Value
    {
        public MyValue MyValue { get; set; }
    }
    
    public class RootObject
    {
        public string id { get; set; }
        public Value value { get; set; }
    }
    

    【讨论】:

    • 抱歉我的解释不好。我编辑了问题以解决问题。
    猜你喜欢
    • 2016-06-13
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多