java - Jackson 数组或字符串 : Can not deserialize instance of java. lang.String 超出 START_ARRAY token

标签 java json spring jackson

我知道以前曾有人问过类似的问题,但它们并没有解决我的特定情况。

我正在使用 jackson 将 json 绑定(bind)到 pojo 对象。问题是 Json 结果有时会是单个值:

attributes: [
    {
        name: "IDs",
        value: [
            76715
        ]
    },
    {
        name: "Updated",
        value: false
    },
    {
        name: "Merged",
        value: false
    },
    {
        name: "Source",
        value: "db"
    }
]

我的问题是,如何在我的属性对象中解释这一点?

我尝试了字符串,然后尝试了数组,然后尝试将它们组合起来。

private List value = new ArrayList();

public List getValue() {
    return value;
}

public void setValue(List value) {
    this.value = value;
}

public void setValue(String value) {
    this.value.add(value);
}

到目前为止,还没有任何方法能够实现“值(value)”的所有可能性。

最佳答案

value 定义为 ObjectAttribute 类将完成这项工作:

public static class Attribute {
  private String name;
  private Object value;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public Object getValue() {
    return value;
  }

  public void setValue(Object value) {
    this.value = value;
  }
}

关于java - Jackson 数组或字符串 : Can not deserialize instance of java. lang.String 超出 START_ARRAY token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43619116/

相关文章:

c# - C# 和 Haskell 之间的通信

javascript - 如何轻松测量 JSON 对象的复杂性?

java - Spring 支持或反对 @service 上的私有(private)静态最终不可变的激励

C#/ASP.NET 核心 6 : transform weird json to something useful

java - 沿着路径移动对象: How to call actionPerformed only after previous actionPerformed has finished?

java - ConcurrentHashMap 作为缓存性能

java - Spring Autowiring 的dao为空

Spring Batch - 无法解析的日期

java - Play framework java依赖注入(inject)——什么时候使用单例

java - 在java中评估json对象