Example usage for org.json.simple JSONObject size

List of usage examples for org.json.simple JSONObject size

Introduction

In this page you can find the example usage for org.json.simple JSONObject size.

Prototype

int size();

Source Link

Document

Returns the number of key-value mappings in this map.

Usage

From source file:org.apache.metron.alerts.adapters.ThreatAlertsAdapter.java

@SuppressWarnings("unchecked")
@Override//from  w  ww  . ja va 2  s.  co m
public Map<String, JSONObject> alert(JSONObject raw_message) {

    System.out.println("LOOKING FOR ENRICHMENT TAG: " + enrichment_tag);

    Map<String, JSONObject> alerts = new HashMap<String, JSONObject>();
    JSONObject content = (JSONObject) raw_message.get("message");

    JSONObject enrichment = null;

    if (raw_message.containsKey("enrichment"))
        enrichment = (JSONObject) raw_message.get("enrichment");
    else
        return null;

    if (enrichment.containsKey(enrichment_tag)) {

        System.out.println("FOUND TAG: " + enrichment_tag);

        JSONObject threat = (JSONObject) enrichment.get(enrichment_tag);

        int cnt = 0;
        Object enriched_key = null;

        for (Object key : threat.keySet()) {
            JSONObject tmp = (JSONObject) threat.get(key);
            cnt = cnt + tmp.size();
            if (tmp.size() > 0)
                enriched_key = key;
        }

        if (cnt == 0) {
            System.out.println("TAG HAS NO ELEMENTS");
            return null;
        }

        JSONObject alert = new JSONObject();

        String source = "unknown";
        String dest = "unknown";
        String host = "unknown";

        if (content.containsKey("ip_src_addr")) {
            source = content.get("ip_src_addr").toString();

            if (RangeChecker.checkRange(loaded_whitelist, source))
                host = source;
        }

        if (content.containsKey("ip_dst_addr")) {
            dest = content.get("ip_dst_addr").toString();

            if (RangeChecker.checkRange(loaded_whitelist, dest))
                host = dest;
        }

        JSONObject threatQualifier = (JSONObject) threat.get(enriched_key);

        alert.put("designated_host", host);
        String description =

                new StringBuilder().append("Threat Intelligence match for ")
                        .append(content.get(enriched_key).toString()).append(" from source: ")
                        .append(threatQualifier.keySet().iterator().next().toString()).toString();
        alert.put("description", description);
        alert.put("priority", "MED");

        String alert_id = generateAlertId(source, dest, 0);

        alert.put("alert_id", alert_id);
        alerts.put(alert_id, alert);

        alert.put("enrichment", enrichment);

        return alerts;
    } else {
        System.out.println("DID NOT FIND TAG: " + enrichment_tag);
        return null;
    }

}

From source file:org.apache.metron.parsers.GrokParser.java

@SuppressWarnings("unchecked")
private Optional<MessageParserResult<JSONObject>> parseMultiLine(byte[] rawMessage) {
    List<JSONObject> messages = new ArrayList<>();
    Map<Object, Throwable> errors = new HashMap<>();
    String originalMessage = null;
    // read the incoming raw data as if it may have multiple lines of logs
    // if there is only only one line, it will just get processed.
    try (BufferedReader reader = new BufferedReader(
            new StringReader(new String(rawMessage, StandardCharsets.UTF_8)))) {
        while ((originalMessage = reader.readLine()) != null) {
            LOG.debug("Grok parser parsing message: {}", originalMessage);
            try {
                Match gm = grok.match(originalMessage);
                gm.captures();//w ww  .ja v a2  s .c  om
                JSONObject message = new JSONObject();
                message.putAll(gm.toMap());

                if (message.size() == 0) {
                    Throwable rte = new RuntimeException(
                            "Grok statement produced a null message. Original message was: " + originalMessage
                                    + " and the parsed message was: " + message + " . Check the pattern at: "
                                    + grokPath);
                    errors.put(originalMessage, rte);
                    continue;
                }
                message.put("original_string", originalMessage);
                for (String timeField : timeFields) {
                    String fieldValue = (String) message.get(timeField);
                    if (fieldValue != null) {
                        message.put(timeField, toEpoch(fieldValue));
                    }
                }
                if (timestampField != null) {
                    message.put(Constants.Fields.TIMESTAMP.getName(),
                            formatTimestamp(message.get(timestampField)));
                }
                message.remove(patternLabel);
                postParse(message);
                messages.add(message);
                LOG.debug("Grok parser parsed message: {}", message);
            } catch (Exception e) {
                LOG.error(e.getMessage(), e);
                errors.put(originalMessage, e);
            }
        }
    } catch (IOException e) {
        LOG.error(e.getMessage(), e);
        Exception innerException = new IllegalStateException(
                "Grok parser Error: " + e.getMessage() + " on " + originalMessage, e);
        return Optional.of(new DefaultMessageParserResult<>(innerException));
    }
    return Optional.of(new DefaultMessageParserResult<>(messages, errors));
}

From source file:org.apache.metron.parsers.GrokParser.java

@SuppressWarnings("unchecked")
private Optional<MessageParserResult<JSONObject>> parseSingleLine(byte[] rawMessage) {
    List<JSONObject> messages = new ArrayList<>();
    Map<Object, Throwable> errors = new HashMap<>();
    String originalMessage = null;
    try {/*from   w  w  w  .j  a  v a 2  s . co m*/
        originalMessage = new String(rawMessage, "UTF-8");
        LOG.debug("Grok parser parsing message: {}", originalMessage);
        Match gm = grok.match(originalMessage);
        gm.captures();
        JSONObject message = new JSONObject();
        message.putAll(gm.toMap());

        if (message.size() == 0) {
            Throwable rte = new RuntimeException(
                    "Grok statement produced a null message. Original message was: " + originalMessage
                            + " and the parsed message was: " + message + " . Check the pattern at: "
                            + grokPath);
            errors.put(originalMessage, rte);
        } else {
            message.put("original_string", originalMessage);
            for (String timeField : timeFields) {
                String fieldValue = (String) message.get(timeField);
                if (fieldValue != null) {
                    message.put(timeField, toEpoch(fieldValue));
                }
            }
            if (timestampField != null) {
                message.put(Constants.Fields.TIMESTAMP.getName(), formatTimestamp(message.get(timestampField)));
            }
            message.remove(patternLabel);
            postParse(message);
            messages.add(message);
            LOG.debug("Grok parser parsed message: {}", message);
        }
    } catch (Exception e) {
        LOG.error(e.getMessage(), e);
        Exception innerException = new IllegalStateException(
                "Grok parser Error: " + e.getMessage() + " on " + originalMessage, e);
        return Optional.of(new DefaultMessageParserResult<>(innerException));
    }
    return Optional.of(new DefaultMessageParserResult<JSONObject>(messages, errors));
}

From source file:org.jolokia.client.request.J4pWriteIntegrationTest.java

@Test
public void mxMap() throws MalformedObjectNameException, J4pException {
    final Map<String, Long> input = new HashMap<String, Long>();
    input.put("roland", 13L);
    input.put("heino", 19L);
    checkMxWrite(new String[] { "POST" }, "Map", null, input, new ResponseAssertion() {
        public void assertResponse(J4pResponse resp) {
            JSONObject val = (JSONObject) resp.getValue();
            assertEquals(val.size(), input.size());
            for (String key : input.keySet()) {
                assertEquals(input.get(key), val.get(key));
            }/*from   w ww .  j  a v  a2 s  .  c  om*/
        }
    });
}

From source file:org.jolokia.converter.json.BeanExtractorTest.java

@Test
public void simple() throws AttributeNotFoundException {
    JSONObject res = (JSONObject) extractJson(this);
    assertEquals(res.get("number"), 10);
    assertEquals(res.get("text"), "Test");
    assertFalse((Boolean) res.get("flag"));
    assertEquals(((JSONObject) res.get("inner")).get("innerText"), "innerValue");
    assertNull(res.get("nulli"));
    assertTrue(!res.containsKey("forbiddenStream"));
    assertTrue(res.containsKey("nulli"));
    assertEquals(res.get("nacked"), "nacked object");
    assertEquals(res.get("self"), "[this]");

    JSONObject inner = (JSONObject) extractJson(this, "inner");
    assertEquals(inner.get("innerText"), "innerValue");

    JSONObject innerWithWildcardPath = (JSONObject) extractJson(this, null, "innerDate");
    assertEquals(innerWithWildcardPath.size(), 1);
    assertTrue((Long) ((JSONObject) innerWithWildcardPath.get("inner")).get("millis") <= new Date().getTime());

    BeanExtractorTest test = (BeanExtractorTest) extractObject(this);
    assertEquals(test, this);

    Date date = (Date) extractObject(this, "inner", "innerDate");
    assertTrue(date.getTime() <= new Date().getTime());

}

From source file:org.jolokia.converter.json.TabularDataExtractorTest.java

@Test
public void extractMapAsJson() throws OpenDataException, AttributeNotFoundException {
    TabularData data = getMapTabularData(STRING, "key1", TEST_VALUE);
    JSONObject result = (JSONObject) extract(true, data);
    assertNull(result.get("key2"));
    assertEquals(result.get("key1"), TEST_VALUE);
    assertEquals(result.size(), 1);
}

From source file:org.jolokia.converter.json.TabularDataExtractorTest.java

@Test
public void extractMapAsJsonWithWildcardPath()
        throws OpenDataException, AttributeNotFoundException, MalformedObjectNameException {
    TabularData data = prepareMxMBeanMapData("key1", "test:type=bla", "key2", "java.lang:type=Memory");

    JSONObject result = (JSONObject) extract(true, data, null, "domain");
    assertEquals(result.size(), 2);
    assertEquals(result.get("key1"), "test");
    assertEquals(result.get("key2"), "java.lang");
}

From source file:org.jolokia.converter.json.TabularDataExtractorTest.java

@Test
public void extractMapWithComplexType() throws OpenDataException, AttributeNotFoundException {
    CompositeTypeAndJson cdj = new CompositeTypeAndJson(STRING, "name", "roland", INTEGER, "date", 1968);
    TabularData data = getMapTabularData(cdj.getType(), cdj.getCompositeData(), TEST_VALUE);

    JSONObject result = (JSONObject) extract(true, data);
    assertEquals(result.size(), 2);
    assertTrue(result.containsKey("indexNames"));
    assertTrue(result.containsKey("values"));
    List indexNames = (List) result.get("indexNames");
    assertEquals(indexNames.size(), 1);/*w  ww .  j  a v a2s .co  m*/
    assertTrue(indexNames.contains("key"));
    List values = (List) result.get("values");
    assertEquals(values.size(), 1);
    JSONObject value = (JSONObject) values.get(0);
    JSONObject key = (JSONObject) value.get("key");
    assertEquals(key.get("name"), "roland");
    assertEquals(key.get("date"), 1968);
    assertEquals(key.size(), 2);

    assertEquals(value.get("value"), TEST_VALUE);
    assertEquals(key.size(), 2);
}

From source file:org.jolokia.converter.json.TabularDataExtractorTest.java

@Test
void extractGenericTabularDataWithJson() throws OpenDataException, AttributeNotFoundException {
    TabularData data = getComplexTabularData();
    JSONObject result = (JSONObject) extract(true, data);
    assertEquals(result.size(), 2);
    assertTrue(result.containsKey("meyer"));
    assertTrue(result.containsKey("huber"));
    JSONObject meyerMap = (JSONObject) result.get("meyer");
    assertTrue(meyerMap.containsKey("xaver"));
    assertTrue(meyerMap.containsKey("zensi"));
    assertEquals(meyerMap.size(), 2);/*from ww  w  .  jav a2s  . c o m*/
    JSONObject zensiMap = (JSONObject) meyerMap.get("zensi");
    assertEquals(zensiMap.get("name"), "meyer");
    assertEquals(zensiMap.get("firstname"), "zensi");
    assertEquals(zensiMap.get("age"), 28);
    assertEquals(zensiMap.get("male"), false);
    assertEquals(zensiMap.size(), 4);
}

From source file:org.jolokia.converter.json.TabularDataExtractorTest.java

@Test
void extractGenericTabularDataWithPath() throws OpenDataException, AttributeNotFoundException {
    TabularData data = getComplexTabularData();
    JSONObject result = (JSONObject) extract(true, data, "meyer", "xaver");
    assertEquals(result.size(), 4);
    assertEquals(result.get("age"), 12);
    assertEquals(result.get("male"), true);
}