相关疑难解决方法(0)

杰克逊无法反序列化为ForeignCollection(Ormlite)

我有问题反序列化嵌套的json数据.我使用Ormlite来保存数据,并使用Spring/Jackson(2)的组合来获取数据.ForeignCollection在Ormlite将其保留之前,对象的集合/列表必须是接口.我读过其他几个职位#1(1,2,3),但其中的非有一个明确的解决方案.

这是我的一些代码:

@ForeignCollectionField(eager = true)
@JsonProperty("images")
private ForeignCollection<Image> images;
Run Code Online (Sandbox Code Playgroud)

我试过@JsonDeserialize(as=BaseForeignCollection.class)没有任何运气.更改ForeignCollectionCollection将使杰克逊高兴并解析数据,但随后它将无法访问数据库.

有任何想法吗?

java android jackson ormlite

7
推荐指数
1
解决办法
545
查看次数

如何使用Jackson注释序列化此JSON?

我有以下JSON:

{ 
    fields : {
            "foo" : "foovalue",
            "bar" : "barvalue"
    }
}
Run Code Online (Sandbox Code Playgroud)

我写了一个pojo如下:

public class MyPojo {

    @JsonProperty("fields") 
    private List<Field> fields;

    static class Field {
        @JsonProperty("foo") private String foo;
        @JsonProperty("bar") private String bar;

        //Getters and setters for those 2
}
Run Code Online (Sandbox Code Playgroud)

这显然会失败,因为我的json字段"fields"是一个hashmap,而不是一个列表.
我的问题是:是否有任何"魔术"注释可以使杰克逊将地图键识别为pojo属性名称,并将地图值分配给pojo属性值?

PS:我真的不想让我的田野对象......

private Map<String, String> fields;
Run Code Online (Sandbox Code Playgroud)

...因为在我的真实世界json中,我在地图值中有复杂的对象,而不仅仅是字符串......

谢谢 ;-)

菲利普

java serialization json jackson

6
推荐指数
1
解决办法
3万
查看次数

在 Spring 数据休息中找不到非具体 Collection 类型的反序列化器

我正在为我的应用程序使用 Spring Data Rest。当我执行后调用时。我收到错误

输入有效负载语法:-

{
  "id": 0,
  "name": "string",
  "sortedWeightedSources": {
    "empty": true
  },
  "status": "ACTIVE",
  "weightedSources": [
    {
      "sources": {
        "accountNumber": "string",
        "active": true,
        "configuration": "string",
        "id": 0,
        "name": "string"
      },
      "rate": 0,
      "id": 0,
      "status": "ACTIVE",
      "weight": 0
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

要求:-

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/hal+json' -d '{ \ 
   "name": "string"   \ 
 }' 'http://localhost:8082/model1'
Run Code Online (Sandbox Code Playgroud)

错误:-

{
  "cause": {
    "cause": {
      "cause": null,
      "message": "Can not find a deserializer for non-concrete Collection type …
Run Code Online (Sandbox Code Playgroud)

java spring spring-data-rest

4
推荐指数
1
解决办法
2万
查看次数