相关疑难解决方法(0)

如何在Wildfly中配置Jackson?

我有一个使用以下方法的会话Bean:

@POST
@Consumes("application/x-www-form-urlencoded")
@Path("/calculate")
@Produces("application/json")
public CalculationResult calculate(@FormParam("childProfile") String childProfile,
        @FormParam("parentProfile") String parentProfile) {
...
}
Run Code Online (Sandbox Code Playgroud)

返回的CalculationResult无法映射到JSON,并发生以下异常:

Caused by: com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class com.test.UniqueName and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)...
Run Code Online (Sandbox Code Playgroud)

如何SerializationFeature在Wildfly中配置Jackson及其?

java rest jax-rs jackson wildfly

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

Json使用jackson进行动态反序列化

我已经看过" 杰克逊动态属性名称 "的问题,但它并没有真正回答我的问题.

我想反序列化这样的东西:

public class Response<T> {
    private String status;
    private Error error;
    private T data;
}
Run Code Online (Sandbox Code Playgroud)

但是数据可以具有不同的名称,因为存在不同的服务并且返回具有不同数据的相同结构.例如'用户'和'合同':

{
  response: {
    status: "success",
    user: {
        ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

要么

{
  response: {
    status: "failure",
    error : {
        code : 212, 
        message : "Unable to retrieve contract"
    }
    contract: {
        ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我想像我这样对我的响应对象进行泛化:

public class UserResponse extends Response<User> {}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但我不确定这是我的用例,或者是否不以良好的方式使用它:

 @JsonTypeInfo(include = As.WRAPPER_OBJECT, use = Id.CLASS)
 @JsonSubTypes({@Type(value = User.class, name = "user"),
                    @Type(value = Contract.class, name …
Run Code Online (Sandbox Code Playgroud)

java serialization json jackson

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

如何使用 Json 对象的动态属性名称

我们如何使 JSON 属性名称动态化。例如

public class Value {
    @JsonProperty(value = "value")
    private String val;

    public void setVal(String val) {
        this.val = val;
    }

    public String getVal() {
        return val;
    }
}
Run Code Online (Sandbox Code Playgroud)

序列化此对象时,它被保存为{"value": "actual_value_saved"},但我想让密钥也像 一样动态{"new_key": "actual_value_saved"}。任何帮助深表感谢。

java json jackson spring-boot

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

标签 统计

jackson ×3

java ×3

json ×2

jax-rs ×1

rest ×1

serialization ×1

spring-boot ×1

wildfly ×1