我正在尝试从我的java代码访问API。 API只接受JSON对象形式的数据,但我在构建JsonObject
表示时遇到问题。
我想要做的是使用createObjectBuilder()
创建格式如下的JsonObject
:
{
"user1234@gmail.com": {
"username" : "user1234@gmail.com",
"password" : "password1",
"service" : [ "yourkit" ]
}
}
我试过了:
JSONObject jsonObject = (JSONObject)Json.createObjectBuilder()
.add(
username,
Json.createObjectBuilder()
.add("username", username)
.add("password", password)
.add("service", service)
).build();
p.setEntity(new StringEntity(jsonObject.toString(), "UTF-8"));
HttpResponse r = c.execute(p);
但它没有向API发送正确的请求。
有人可以帮帮我吗?
答案 0 :(得分:2)
要实现您想要的格式,变量 service 必须是字符串数组。
答案 1 :(得分:1)
您缺少服务属性的数组:
JSONObject jsonObject = (JSONObject)Json.createObjectBuilder()
.add(
username,
Json.createObjectBuilder()
.add("username", username)
.add("password", password)
.add("service",
Json.createArrayBuilder()
.add(service)
)
).build();