List of usage examples for com.google.gson JsonElement isJsonNull
public boolean isJsonNull()
From source file:com.floragunn.searchguard.HeaderAwareJestHttpClient.java
License:Apache License
private boolean isJson(final String data) { try {/*from w w w . j ava 2 s . c o m*/ final JsonElement result = new JsonParser().parse(data); return !result.isJsonNull(); } catch (final JsonSyntaxException e) { //Check if this is a bulk request final String[] bulkRequest = data.split("\n"); return bulkRequest.length >= 1; } }
From source file:com.fooock.shodan.model.banner.BannerDeserializer.java
License:Open Source License
@Override public List<Banner> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { final List<Banner> banners = new ArrayList<>(); if (json.isJsonNull()) { return banners; }/*from w w w .j av a 2 s .c o m*/ JsonArray jsonArray = json.getAsJsonArray(); if (jsonArray.isJsonNull()) { return banners; } for (JsonElement element : jsonArray) { JsonObject jsonObject = element.getAsJsonObject(); JsonElement port = jsonObject.get("port"); JsonElement ip = jsonObject.get("ip"); JsonElement asn = jsonObject.get("asn"); JsonElement data = jsonObject.get("data"); JsonElement ipStr = jsonObject.get("ip_str"); JsonElement ipv6 = jsonObject.get("ipv6"); JsonElement timestamp = jsonObject.get("timestamp"); JsonElement hostnames = jsonObject.get("hostnames"); JsonElement domains = jsonObject.get("domains"); JsonElement location = jsonObject.get("location"); JsonElement options = jsonObject.get("opts"); JsonElement metadata = jsonObject.get("_shodan"); JsonElement ssl = jsonObject.get("ssl"); JsonElement uptime = jsonObject.get("uptime"); JsonElement link = jsonObject.get("link"); JsonElement title = jsonObject.get("title"); JsonElement html = jsonObject.get("html"); JsonElement product = jsonObject.get("product"); JsonElement version = jsonObject.get("version"); JsonElement isp = jsonObject.get("isp"); JsonElement os = jsonObject.get("os"); JsonElement transport = jsonObject.get("transport"); JsonElement devicetype = jsonObject.get("devicetype"); JsonElement info = jsonObject.get("info"); JsonElement cpe = jsonObject.get("cpe"); final Banner banner = new Banner(); if (port == null || port.isJsonNull()) { banner.setPort(0); } else { banner.setPort(port.getAsInt()); } if (ip == null || ip.isJsonNull()) { banner.setIp(0); } else { banner.setIp(ip.getAsLong()); } if (asn == null || asn.isJsonNull()) { banner.setAsn("unknown"); } else { banner.setAsn(asn.getAsString()); } if (data == null || data.isJsonNull()) { banner.setData("unknown"); } else { banner.setData(data.getAsString()); } if (ipStr == null || ipStr.isJsonNull()) { banner.setIpStr("unknown"); } else { banner.setIpStr(ipStr.getAsString()); } if (ipv6 == null || ipv6.isJsonNull()) { banner.setIpv6("unknown"); } else { banner.setIpv6(ipv6.getAsString()); } if (timestamp == null || timestamp.isJsonNull()) { banner.setTimestamp("unknown"); } else { banner.setTimestamp(timestamp.getAsString()); } if (hostnames == null || hostnames.isJsonNull()) { banner.setHostnames(new String[0]); } else { JsonArray hostnamesAsJsonArray = hostnames.getAsJsonArray(); String[] hostnameArray = new String[hostnamesAsJsonArray.size()]; for (int i = 0; i < hostnamesAsJsonArray.size(); i++) { hostnameArray[i] = hostnamesAsJsonArray.get(i).getAsString(); } banner.setHostnames(hostnameArray); } if (domains == null || domains.isJsonNull()) { banner.setDomains(new String[0]); } else { JsonArray domainsAsJsonArray = domains.getAsJsonArray(); String[] domainsArray = new String[domainsAsJsonArray.size()]; for (int i = 0; i < domainsAsJsonArray.size(); i++) { domainsArray[i] = domainsAsJsonArray.get(i).getAsString(); } banner.setDomains(domainsArray); } if (location == null || location.isJsonNull()) { banner.setLocation(new Location()); } else { JsonObject locationAsJsonObject = location.getAsJsonObject(); JsonElement areaCode = locationAsJsonObject.get("area_code"); JsonElement latitude = locationAsJsonObject.get("latitude"); JsonElement longitude = locationAsJsonObject.get("longitude"); JsonElement city = locationAsJsonObject.get("city"); JsonElement regionCode = locationAsJsonObject.get("region_code"); JsonElement postalCode = locationAsJsonObject.get("postal_code"); JsonElement dmaCode = locationAsJsonObject.get("dma_code"); JsonElement countryCode = locationAsJsonObject.get("country_code"); JsonElement countryCode3 = locationAsJsonObject.get("country_code3"); JsonElement countryName = locationAsJsonObject.get("country_name"); Location locationObject = new Location(); if (areaCode == null || areaCode.isJsonNull()) { locationObject.setAreaCode(0); } else { locationObject.setAreaCode(areaCode.getAsInt()); } if (latitude == null || latitude.isJsonNull()) { locationObject.setLatitude(0.0); } else { locationObject.setLatitude(latitude.getAsDouble()); } if (longitude == null || location.isJsonNull()) { locationObject.setLongitude(0.0); } else { locationObject.setLongitude(longitude.getAsDouble()); } if (city == null || city.isJsonNull()) { locationObject.setCity("unknown"); } else { locationObject.setCity(city.getAsString()); } if (regionCode == null || regionCode.isJsonNull()) { locationObject.setRegionCode("unknown"); } else { locationObject.setRegionCode(regionCode.getAsString()); } if (postalCode == null || postalCode.isJsonNull()) { locationObject.setPostalCode("unknown"); } else { locationObject.setPostalCode(postalCode.getAsString()); } if (dmaCode == null || dmaCode.isJsonNull()) { locationObject.setDmaCode("unknown"); } else { locationObject.setDmaCode(dmaCode.getAsString()); } if (countryCode == null || countryCode.isJsonNull()) { locationObject.setCountryCode("unknown"); } else { locationObject.setCountryCode(countryCode.getAsString()); } if (countryCode3 == null || countryCode3.isJsonNull()) { locationObject.setCountryCode3("unknown"); } else { locationObject.setCountryCode3(countryCode3.getAsString()); } if (countryName == null || countryName.isJsonNull()) { locationObject.setCountryName("unknown"); } else { locationObject.setCountryName(countryName.getAsString()); } banner.setLocation(locationObject); } final Options opts = new Options(); if (options == null || options.isJsonNull()) { opts.setRaw("unknown"); } else { JsonObject object = options.getAsJsonObject(); JsonElement raw = object.get("raw"); if (raw == null || raw.isJsonNull()) { opts.setRaw("unknown"); } else { opts.setRaw(raw.getAsString()); } } banner.setOptions(opts); final Metadata shodanMetadata = new Metadata(); if (metadata == null || metadata.isJsonNull()) { shodanMetadata.setCrawler("unknown"); shodanMetadata.setId("unknown"); shodanMetadata.setModule("unknown"); } else { JsonObject metadataAsJsonObject = metadata.getAsJsonObject(); JsonElement crawler = metadataAsJsonObject.get("crawler"); JsonElement id = metadataAsJsonObject.get("id"); JsonElement module = metadataAsJsonObject.get("module"); if (crawler == null || crawler.isJsonNull()) { shodanMetadata.setCrawler("unknown"); } else { shodanMetadata.setCrawler(crawler.getAsString()); } if (id == null || id.isJsonNull()) { shodanMetadata.setId("unknown"); } else { shodanMetadata.setId(id.getAsString()); } if (module == null || module.isJsonNull()) { shodanMetadata.setModule("unknown"); } else { shodanMetadata.setModule(module.getAsString()); } } banner.setMetadata(shodanMetadata); final SslInfo sslInfo = new SslInfo(); if (ssl == null || ssl.isJsonNull()) { banner.setSslEnabled(false); } else { banner.setSslEnabled(true); JsonObject sslAsJsonObject = ssl.getAsJsonObject(); JsonElement chain = sslAsJsonObject.get("chain"); JsonArray chainAsJsonArray = chain.getAsJsonArray(); String[] chainArray = new String[chainAsJsonArray.size()]; for (int i = 0; i < chainAsJsonArray.size(); i++) { chainArray[i] = chainAsJsonArray.get(i).getAsString(); } sslInfo.setChain(chainArray); JsonElement versions = sslAsJsonObject.get("versions"); JsonArray versionAsJsonArray = versions.getAsJsonArray(); String[] versionsArray = new String[versionAsJsonArray.size()]; for (int i = 0; i < versionsArray.length; i++) { versionsArray[i] = versionAsJsonArray.get(i).getAsString(); } sslInfo.setVersions(versionsArray); JsonElement cipher = sslAsJsonObject.get("cipher"); JsonObject cipherAsJsonObject = cipher.getAsJsonObject(); JsonElement bits = cipherAsJsonObject.get("bits"); JsonElement cipherVersion = cipherAsJsonObject.get("version"); JsonElement name = cipherAsJsonObject.get("name"); final Cipher cipherObject = new Cipher(); if (bits != null && !bits.isJsonNull()) { cipherObject.setBits(bits.getAsInt()); } if (cipherVersion != null && !cipherVersion.isJsonNull()) { cipherObject.setVersion(cipherVersion.getAsString()); } else { cipherObject.setVersion("unknown"); } if (name == null || name.isJsonNull()) { cipherObject.setName("unknown"); } else { cipherObject.setName(name.getAsString()); } sslInfo.setCipher(cipherObject); JsonElement dhparams = sslAsJsonObject.get("dhparams"); if (dhparams != null && !dhparams.isJsonNull()) { JsonObject dhparamsAsJsonObject = dhparams.getAsJsonObject(); JsonElement bits1 = dhparamsAsJsonObject.get("bits"); JsonElement prime = dhparamsAsJsonObject.get("prime"); JsonElement publicKey = dhparamsAsJsonObject.get("public_key"); JsonElement generator = dhparamsAsJsonObject.get("generator"); JsonElement fingerprint = dhparamsAsJsonObject.get("fingerprint"); final DiffieHellmanParams diffieHellmanParams = new DiffieHellmanParams(); if (bits1 != null && !bits1.isJsonNull()) { diffieHellmanParams.setBits(bits1.getAsInt()); } if (prime == null || prime.isJsonNull()) { diffieHellmanParams.setPrime("unknown"); } else { diffieHellmanParams.setPrime(prime.getAsString()); } if (publicKey == null || publicKey.isJsonNull()) { diffieHellmanParams.setPublicKey("unknown"); } else { diffieHellmanParams.setPublicKey(publicKey.getAsString()); } if (generator == null || generator.isJsonNull()) { diffieHellmanParams.setGenerator("unknown"); } else { diffieHellmanParams.setGenerator(generator.getAsString()); } if (fingerprint == null || fingerprint.isJsonNull()) { diffieHellmanParams.setFingerprint("unknown"); } else { diffieHellmanParams.setFingerprint(fingerprint.getAsString()); } sslInfo.setDiffieHellmanParams(diffieHellmanParams); } } banner.setSslInfo(sslInfo); if (uptime == null || uptime.isJsonNull()) { banner.setUptime(0); } else { banner.setUptime(uptime.getAsInt()); } if (link == null || link.isJsonNull()) { banner.setLink("unknown"); } else { banner.setLink(link.getAsString()); } if (title == null || title.isJsonNull()) { banner.setTitle("unknown"); } else { banner.setTitle(title.getAsString()); } if (html == null || html.isJsonNull()) { banner.setHtml("unknown"); } else { banner.setHtml(html.getAsString()); } if (product == null || product.isJsonNull()) { banner.setProduct("unknown"); } else { banner.setProduct(product.getAsString()); } if (version == null || version.isJsonNull()) { banner.setVersion("unknown"); } else { banner.setVersion(version.getAsString()); } if (isp == null || isp.isJsonNull()) { banner.setIsp("unknown"); } else { banner.setIsp(isp.getAsString()); } if (os == null || os.isJsonNull()) { banner.setOs("unknown"); } else { banner.setOs(os.getAsString()); } if (transport == null || transport.isJsonNull()) { banner.setTransport("unknown"); } else { banner.setTransport(transport.getAsString()); } if (devicetype == null || devicetype.isJsonNull()) { banner.setDeviceType("unknown"); } else { banner.setDeviceType(devicetype.getAsString()); } if (info == null || info.isJsonNull()) { banner.setInfo("unknown"); } else { banner.setInfo(info.getAsString()); } if (cpe == null || cpe.isJsonNull()) { banner.setCpe(new String[0]); } else { // cpe can be string or string[]. Fix for #4 if (cpe.isJsonObject()) { banner.setCpe(new String[] { cpe.getAsString() }); } else { JsonArray cpeAsJsonArray = cpe.getAsJsonArray(); String[] cpeArray = new String[cpeAsJsonArray.size()]; for (int i = 0; i < cpeAsJsonArray.size(); i++) { cpeArray[i] = cpeAsJsonArray.get(i).getAsString(); } banner.setCpe(cpeArray); } } banners.add(banner); } return banners; }
From source file:com.fooock.shodan.model.dns.DnsHostnameDeserializer.java
License:Open Source License
@Override public List<DnsHostname> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { final List<DnsHostname> dnsHostnames = new ArrayList<>(); if (json.isJsonNull()) { return dnsHostnames; }//from w w w . ja v a2s . c om JsonObject jsonObject = json.getAsJsonObject(); if (jsonObject == null) { return dnsHostnames; } for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) { String key = entry.getKey(); JsonElement value = entry.getValue(); if (value == null || value.isJsonNull()) { String[] unknown = new String[] { "" }; DnsHostname dnsHostname = new DnsHostname(key, unknown); dnsHostnames.add(dnsHostname); continue; } String hostnameString = value.getAsString(); if (hostnameString != null && !hostnameString.isEmpty()) { String[] hostnames = hostnameString.split(","); DnsHostname dnsHostname = new DnsHostname(key, hostnames); dnsHostnames.add(dnsHostname); } } return dnsHostnames; }
From source file:com.fooock.shodan.model.dns.DnsIpDeserializer.java
License:Open Source License
@Override public List<DnsIp> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { final List<DnsIp> dns = new ArrayList<>(); if (json.isJsonNull()) { return dns; }//from w w w .j av a 2 s . c o m JsonObject jsonObject = json.getAsJsonObject(); for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) { String key = entry.getKey(); JsonElement value = entry.getValue(); DnsIp dnsIp = new DnsIp(key, value.getAsString()); dns.add(dnsIp); } return dns; }
From source file:com.fooock.shodan.model.exploit.ExploitDeserializer.java
License:Open Source License
@Override public List<Exploit> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { List<Exploit> exploits = new ArrayList<>(); try {//from w w w.j a v a 2 s . co m JsonObject jsonObject = json.getAsJsonObject(); JsonElement matches = jsonObject.get("matches"); if (matches == null || matches.isJsonNull()) { return exploits; } JsonArray array = matches.getAsJsonArray(); if (array == null || array.isJsonNull()) { return exploits; } for (JsonElement element : array) { Exploit exploit = parseJsonExploit(element); exploits.add(exploit); } } catch (IllegalStateException e) { // parsing the array of exploits directly, used when search with facets JsonArray elements = json.getAsJsonArray(); if (elements == null || elements.isJsonNull()) { return exploits; } for (JsonElement element : elements) { Exploit exploit = parseJsonExploit(element); exploits.add(exploit); } } return exploits; }
From source file:com.fooock.shodan.model.exploit.ExploitDeserializer.java
License:Open Source License
private Exploit parseJsonExploit(JsonElement json) { Exploit exploit = new Exploit(); JsonObject jsonObject = json.getAsJsonObject(); String id = jsonObject.get("_id").getAsString(); String desc = jsonObject.get("description").getAsString(); String source = jsonObject.get("source").getAsString(); JsonElement jsonAuthor = jsonObject.get("author"); if (jsonAuthor != null && !jsonAuthor.isJsonNull()) { if (jsonAuthor.isJsonPrimitive()) { String author = jsonAuthor.getAsString(); exploit.setAuthor(author);/*w ww.j a v a 2 s. co m*/ } else { JsonArray array = jsonAuthor.getAsJsonArray(); if (array != null) { String resAuthors = ""; for (JsonElement element : array) { resAuthors += ", " + element.getAsString(); } exploit.setAuthor(resAuthors); } } } JsonElement jsonCode = jsonObject.get("code"); if (jsonCode != null && !jsonCode.isJsonNull()) { String code = jsonCode.getAsString(); exploit.setCode(code); } JsonElement jsonType = jsonObject.get("type"); if (jsonType != null && !jsonType.isJsonNull()) { String type = jsonType.getAsString(); exploit.setType(type); } JsonElement jsonVersion = jsonObject.get("version"); if (jsonVersion != null && !jsonVersion.isJsonNull()) { String version = jsonVersion.getAsString(); exploit.setVersion(version); } JsonElement jsonPrivileged = jsonObject.get("privileged"); if (jsonPrivileged != null && !jsonPrivileged.isJsonNull()) { boolean privileged = jsonPrivileged.getAsBoolean(); exploit.setPrivileged(privileged); } JsonElement jsonPort = jsonObject.get("port"); if (jsonPort != null && !jsonPort.isJsonNull()) { int port = jsonPort.getAsInt(); exploit.setPort(port); } JsonArray jsonBid = jsonObject.getAsJsonArray("bid"); if (jsonBid != null) { String[] bid = new String[jsonBid.size()]; for (int i = 0; i < jsonBid.size(); i++) { bid[i] = jsonBid.get(i).getAsString(); } exploit.setBid(bid); } JsonArray jsonCve = jsonObject.getAsJsonArray("cve"); if (jsonCve != null) { String[] cve = new String[jsonCve.size()]; for (int i = 0; i < jsonCve.size(); i++) { cve[i] = jsonCve.get(i).getAsString(); } exploit.setCve(cve); } JsonArray jsonMsb = jsonObject.getAsJsonArray("msb"); if (jsonMsb != null) { String[] msb = new String[jsonMsb.size()]; for (int i = 0; i < jsonMsb.size(); i++) { msb[i] = jsonMsb.get(i).getAsString(); } exploit.setMsb(msb); } JsonArray jsonOsvdb = jsonObject.getAsJsonArray("osvdb"); if (jsonOsvdb != null) { String[] osvdb = new String[jsonOsvdb.size()]; for (int i = 0; i < jsonOsvdb.size(); i++) { osvdb[i] = jsonOsvdb.get(i).getAsString(); } exploit.setOsvdb(osvdb); } try { JsonArray jsonPlatform = jsonObject.getAsJsonArray("platform"); if (jsonPlatform != null && jsonPlatform.isJsonArray()) { String[] platform = new String[jsonPlatform.size()]; for (int i = 0; i < jsonPlatform.size(); i++) { platform[i] = jsonPlatform.get(i).getAsString(); } exploit.setPlatform(platform); } } catch (ClassCastException err) { JsonElement platPrimitive = jsonObject.get("platform"); if (platPrimitive != null && !platPrimitive.isJsonNull()) { exploit.setPlatform(new String[] { platPrimitive.getAsString() }); } } exploit.setId(id); exploit.setDescription(desc); exploit.setSource(source); return exploit; }
From source file:com.fooock.shodan.model.host.FacetReportDeserializer.java
License:Open Source License
@Override public FacetReport deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (json.isJsonNull()) { return new FacetReport(0, Collections.emptyList()); }//from w w w . ja va 2s . c om JsonObject jsonObject = json.getAsJsonObject(); if (jsonObject == null || jsonObject.isJsonNull()) { return new FacetReport(0, Collections.emptyList()); } JsonElement element = jsonObject.get("matches"); if (element == null || element.isJsonNull()) { // parse directly facets, this is because when searching host with facets // the banners are parsed independently List<Facet> facets = getFacets(jsonObject); return new FacetReport(facets.size(), facets); } else { JsonElement totalElement = jsonObject.get("total"); return parseFacetReport(jsonObject, totalElement); } }
From source file:com.fooock.shodan.model.protocol.ProtocolDeserializer.java
License:Open Source License
@Override public List<Protocol> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { final List<Protocol> protocols = new ArrayList<>(); if (json.isJsonNull()) { return protocols; }//from w w w . j a va 2 s . co m JsonObject jsonObject = json.getAsJsonObject(); if (jsonObject.isJsonNull()) { return protocols; } for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) { String key = entry.getKey(); JsonElement value = entry.getValue(); Protocol protocol = new Protocol(key, value.getAsString()); protocols.add(protocol); } return protocols; }
From source file:com.fooock.shodan.model.user.HttpHeaderDeserializer.java
License:Open Source License
@Override public HttpHeader deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (json.isJsonNull()) { return new HttpHeader(Collections.emptyList()); }/*from w ww . ja va2 s . c o m*/ JsonObject jsonObject = json.getAsJsonObject(); if (jsonObject.isJsonNull()) { return new HttpHeader(Collections.emptyList()); } final List<Value> values = new ArrayList<>(); for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) { String key = entry.getKey(); JsonElement value = entry.getValue(); values.add(new Value(key, value.getAsString())); } return new HttpHeader(values); }
From source file:com.gemapps.saidit.networking.deserializer.TopEntriesDeserializer.java
License:Apache License
private String getBeforeTag(JsonElement data) { JsonElement before = data.getAsJsonObject().get("before"); return !before.isJsonNull() ? before.getAsString() : ""; }