gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 02:19:14 25 4
gpt4 key购买 nike

如何过滤 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com