将 Java 对象转换为 okhttp 正文的 JSON

问题描述 投票:0回答:1

我有以下代码:

ApolloRequestObj obj = ApolloRequestObj.builder()
    .api_key("3434")
    .domains(List.of("test"))
    .build();

// how to send the object as a request body?
RequestBody requestBody = RequestBody.create(
    MediaType.parse("application/json"), json);

Request request = new Request.Builder()
    .url(".......")
    .post(requestBody)
    .header("Content-Type", "application/json")
    .header("Cache-Control", "no-cache")
    .build();

请求对象:

@Getter
@Setter
@Builder
private class ApolloRequestObj {
    public String api_key;
    public List < String > domains;
}

当我用一些数据初始化对象时,我想将其与有效负载数据一起发送到远程主机。你知道我如何发送该对象吗?

java okhttp
1个回答
0
投票

如果您的目标是获取 POJO 并序列化为 Json,您可以配置 Jackson 的 ObjectMapper 来为您执行此操作。

这是一个简短的例子,


ObjectMapper objectMapper = new ObjectMapper();
var jsonString = objectMapper.writeValueToString(obj); 

RequestBody requestBody = RequestBody.create(
    MediaType.parse("application/json"), jsonString);

// rest of code here.

您需要根据您使用的依赖管理框架获取 Jackson 库。

如果您需要转义的 Json,您可以通过简单的字符串替换来添加转义的引号来完成此操作。

© www.soinside.com 2019 - 2024. All rights reserved.