为HttpEntity创建空的Json主体

时间:2018-10-23 13:32:55

标签: java jackson

所以我无法弄清楚这个看似最简单的问题。我想创建HttpEntity,其中标头具有内容类型application / json,主体为空的Json对象:

{}

我所能提供的只是杰克逊(Jackson),但是无论我构建什么(尝试使用空对象的JsonNodeFactory.instance.nullNode()和ObjectNode),它似乎都无法创建适当的空Json对象。字符串“ {}”或null也不起作用。 有什么想法吗?

编辑:伙计们...很抱歉浪费您的时间,原来我正在调用的API由于错误的原因返回了错误的错误请求响应(400)。该请求实际上是正确的。我只接受第一个正确答案

2 个答案:

答案 0 :(得分:3)

一种简单的方法是使用ObjectMapper创建一个空白 JSON ObjectNode,然后对其进行序列化:

ObjectMapper mapper = new ObjectMapper();
ObjectNode obj = mapper.createObjectNode();

String s = mapper.writeValueAsString(obj);  // yields "{}"

不需要mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

答案 1 :(得分:1)

也许是这样的:

/**
 * Produce an empty HttpEntity
 */
public HttpEntity<String> getJsonEntityEmpty() {
    HttpEntity<String> entity = null;

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);

    String requestJson;
    requestJson = "{}";
    entity = new HttpEntity<String>(requestJson,headers);

    return entity;
}