如何在Java中将http响应捕获为Json对象

如何在Java中将http响应捕获为Json对象,java,json,apache-httpclient-4.x,Java,Json,Apache Httpclient 4.x,我想使用CloseableHttpClient发送一个HTTP请求,然后在JSON对象中捕获响应的主体,这样我就可以访问如下键值:responseJson.name等 我可以使用下面的代码将响应主体捕获为字符串ok,但是如何将其捕获为JSON对象呢 CloseableHttpClient httpClient = HttpClients.createDefault(); URIBuilder builder = new URIBuilder(); builder.setScheme("

我想使用CloseableHttpClient发送一个HTTP请求,然后在JSON对象中捕获响应的主体,这样我就可以访问如下键值:responseJson.name等

我可以使用下面的代码将响应主体捕获为字符串ok,但是如何将其捕获为JSON对象呢

CloseableHttpClient httpClient = HttpClients.createDefault();
URIBuilder builder = new URIBuilder();

    builder.setScheme("https").setHost("login.xxxxxx").setPath("/x/oauth2/token");

您可以将响应字符串类型转换为JSON对象

字符串到JSON使用
Jackson
com.fasterxml.Jackson.databind

假设您的json字符串表示为:jsonString=“{”name:“sample”}”

使用图书馆:


只需将字符串转换为
JSONObject
,然后获取
name

JSONObject obj = new JSONObject(responseBodyString);
System.out.println(obj.get("name"));

我的建议是,既然您已经将JSON作为字符串,那么就编写一个方法,使用google“Splitter”对象并定义要拆分为K-V对的字符

例如,我对K-V对做了相同的处理,作为来自Spring Boot应用程序的字符串,并根据特殊字符进行拆分:

private Map<String, String> splitToMap(String in) {

    return Splitter.on(", ").withKeyValueSeparator("=").split(in);
}
private Map splitToMap(字符串输入){
返回Splitter.on(“,”).withKeyValueSeparator(“=”).split(in);
}
替换为例如“:”,这应该将JSON字符串作为K-V对

拆分器Mvn依赖项如下:

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>21.0</version>
</dependency>

番石榴
番石榴
21

希望这能帮助您起步。

您使用的是什么JSON库?谢谢Deadpool。我尝试过这个,但它说无法解析符号“JSONObject”。我在com.google.json上有一个“JsonObject”,但是没有识别出任何JsonObject。我需要安装一个JAR或者在我的POM中添加一些东西才能访问它吗?啊,现在找到了,我把它添加到了我的POM中:org.json json 20180813非常感谢Sree。我使用了第二个示例中的JSONObject。我必须将此添加到我的POM:org.json json 20180813
JSONObject obj = new JSONObject(responseBodyString);
System.out.println(obj.get("name"));
private Map<String, String> splitToMap(String in) {

    return Splitter.on(", ").withKeyValueSeparator("=").split(in);
}
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>21.0</version>
</dependency>