相关疑难解决方法(0)

有选择地扩展Spring Data Rest响应中的关联

我有一个标准的Spring数据JPA和Spring数据Rest设置,它正确地返回关联作为正确资源的链接.

{
    "id": 1,
    "version": 2,
    "date": "2011-11-22",
    "description": "XPTO",
    "_links": {
        "self": {
            "href": "http://localhost:8000/api/domain/1"
        },
        "otherDomain": {
            "href": "http://localhost:8000/api/domain/1/otherDomain"
        }
    }
}   
Run Code Online (Sandbox Code Playgroud)

但是在某些请求中,我希望扩展与"otherDomain"的关联(因此客户端不必执行N + 1个请求来获取完整数据).

是否可以配置Spring Data Rest以这种方式处理响应?

java rest spring spring-data spring-data-rest

13
推荐指数
1
解决办法
8436
查看次数

使用自定义JsonSerializer的Jackson @JsonUnwrapped行为

我有两个这样的课程:

public class A {
    String aProp = "aProp";

    public String getAProp() {
        return aProp;
    }
}

public class B {
    String bProp = "bProp";
    A a = new A();

    @JsonProperty("bProp")
    public String getBProp() {
        return bProp;
    }

    @JsonSerialize(using = CustomSerializer.class)
    public A getA() {
        return a;
    }     
}
Run Code Online (Sandbox Code Playgroud)

我期待得到像这样的JSON:

{
    "bProp": "bProp",         // just serizlised bProp
    "sProp1": "sProp1_aProp", // computed using aProp
    "sProp2": "sProp2_aProp"  // computed another way
}
Run Code Online (Sandbox Code Playgroud)

所以我写了这样的习惯JsonSerializer:

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

public …
Run Code Online (Sandbox Code Playgroud)

java json jackson

6
推荐指数
2
解决办法
4027
查看次数

标签 统计

java ×2

jackson ×1

json ×1

rest ×1

spring ×1

spring-data ×1

spring-data-rest ×1