gpt4 book ai didi

java - 如何使用 GSON 库在 Java 对象和 JSON 文件之间映射字段名称

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

我正在将 JSON 对象解析为 Java 对象,但某些字段为空。

结果

//Printed object after parsing, some fields are null 
{host_ip='null', open=false, host_fqdn='null', nmap_results='null', cvss_vector='cvss2#av:n/ac:l/au:n/c:c/i:c/a:c', cvss=10.0, attackvector='n', list_
of_ports=null, ports___port='null', plugin_family='Windows', scanner_name='Local Scanner', operating_system='null', plugin_name='Microsoft Windows XP Unsupported
Installation Detection'

Gson库的使用:

 for (int v = 0; v < splunk_results_as_Array.size(); v++)
{
String vuln_as_string = splunk_results_as_Array.get(v).toString();
Splunk_data splunkdata = new Gson().fromJson(vuln_as_string, Splunk_data.class); // parsing happens here
System.out.print("\n Splunk : Splunk Java Object created \n" + splunkdata.toString());
splunkdata.ports_to_List();
splunkdata.setDataType(dataType);
list_of_Hosts.add(splunkdata);
}

Json 对象作为字符串

"result":
{"cvss_vector":"cvss2#av:n/ac:l/au:n/c:c/i:c/a:c","host-ip":"XX.XX.XX.XX","plugin_family":"Windows","scanner_name":"Local Scanner","plugin_name":"Microsoft RDP RCE (CVE-2019-0708) (uncredentialed check)","hostname":"XX.XX.XX.XX","cvss":"10.0","attackvector":"n","ports{}.port":"3389"}
}

如您所见,字段:主机 IP 和端口{}。端口确实有值(value)。

使用的类:

public class Splunk_data
{
private String host_ip;
private boolean open;
private String host_fqdn;
private String nmap_results;
private String cvss_vector;
private double cvss;
private String attackvector;
private String ports_port;
private String plugin_family;
private String scanner_name;
private String operating_system;
private String plugin_name;
}

我认为导致问题的原因是host_ip与host-ip不匹配,但我Java无法使用“-”,所以我使用了“_”。

有办法解决这个问题吗?

最佳答案

要为变量使用与 JSON 中实际键不同的名称,可以使用 @Serialized 注释。

@Serialized("host-ip")
private String host_ip;

这将起作用并将您的主机 IP 解析为字符串。

关于java - 如何使用 GSON 库在 Java 对象和 JSON 文件之间映射字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56632879/

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