我如何处理未定义的' Jackson / SpringMVC中的json请求中的值?

时间:2016-02-09 00:57:53

标签: java json spring spring-mvc jackson

当我向POST发出@RestController这样的请求时:

{ "name": undefined }

我收到以下回复:

{
    ...
    "status": 400,
    "error": "Bad Request",
    "exception": "org.springframework.http.converter.HttpMessageNotReadableException",
    "message": "Could not read document: Unrecognized token 'undefined': was expecting ('true', 'false' or 'null')\n at [Source: java.io.PushbackInputStream@5f9559a4; line: 3, column: 27]; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'undefined': was expecting ('true', 'false' or 'null')\n at [Source: java.io.PushbackInputStream@5f9559a4; line: 3, column: 27]",
    ...
}

我正在寻找一个通用解决方案,告诉杰克逊始终将undefined映射/反序列化为null。我还没有找到一个涉及处理未定义值的示例或文档,因此任何指针都会被贬值。

1 个答案:

答案 0 :(得分:1)

真正的答案

不要发送undefined。

错误答案

在目标对象中将值定义为String,然后将其包装在方法中。也许,这样的事情:

private String blammy;

public boolean isBlammyTrue()
{
    return "true".equalsIgnoreCase(blammy);
}

public boolean isBlammyFalse()
{
    return !isBlammyTrue();
}