java - 如何使用java jersey过滤json结果

标签 java api jersey jersey-client

如何过滤 Json 结果以获取特定字段。任何人都可以帮助我克服这种困惑。下面是使用 jersey 客户端的 java 编程代码。该程序使用病毒总数 API key 从病毒总数中获取数据。我得到了 Json 格式的结果,我的目标是过滤 Json 结果并获取特定字段而不是所有字段

public static void main(String[] args) 
    {
        String ip = "13.57.233.180"; 

        Client client = Client.create();

        WebResource resource = client.resource("https://www.virustotal.com/vtapi/v2/ip-address/report?ip="+ip+"&apikey="+API_KEY);

        ClientResponse response = resource.accept("appliction/json").get(ClientResponse.class);

        if(response.getStatus() != 200)
        {
            throw new RuntimeException("Failed Error Code : "+response.getStatus());
        }

        String output = response.getEntity(String.class);
        System.out.println("");
        System.out.println("Output from the server");
        System.out.println("");
        System.out.println(output);
    }

我得到的输出为

{
    "country": "US",
    "response_code": 1,
    "detected_urls": [],
    "resolutions": [
        {
            "last_resolved": "2018-01-28 00:00:00",
            "hostname": "ec2-13-57-233-180.us-west-1.compute.amazonaws.com"
        }
    ],
    "verbose_msg": "IP address in dataset"
}

我需要对该结果进行过滤。我的意思是我只需要国家和详细消息字段。请建议我如何克服这个问题?

最佳答案

首先,请更正代码中的资源类型,因为application/json拼写错误

您可以使用 Jackson for Java 将数据放入 Map/Hashmap 中。 在 Jackson Code 的代码中添加此依赖项:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.4</version>
</dependency>

然后将以下行添加到您的代码中:

String output = response.getEntity(String.class);
Map<String, Object> map = new ObjectMapper().readValue(output,HashMap.class);
System.out.println("Country: " + map.get("country"));
System.out.println("Verbose Message: " + map.get("verbose_msg"));

这将从字符串 json(输出)中获取您的数据并将其映射到您的 HashMap 上。

我希望这能解决您的问题。 谢谢。

关于java - 如何使用java jersey过滤json结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48760031/

相关文章:

api - 第三方Cookie-具有/ session 跟踪的跨域API

java - 什么对应于 Jersey 2 的 HK2 中的 asEagerSingleton?

java - Android - 动态加载系统库没有确切的路径?

java - Spring会自动关闭TCP入站网关吗?

rest - 当位置参数不安全时在 REST 中获取

java - 将 JMock 资源与 Jersey 测试框架结合使用

java - 将 JSON 响应解析为对象

java - 添加自定义控件作为标记 OSMDROID BONUS PACK

java - Spring MVC 中的 ThrowawayController 如何从请求中获取参数?

c# - Twitter API oAuth(错误代码 214 : Bad authentication data)