metron-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ottobackwards <...@git.apache.org>
Subject [GitHub] metron pull request #727: METRON-1146: Add ability to parse JSON string into...
Date Tue, 12 Sep 2017 11:06:00 GMT
Github user ottobackwards commented on a diff in the pull request:

    https://github.com/apache/metron/pull/727#discussion_r138315063
  
    --- Diff: metron-stellar/stellar-common/src/main/java/org/apache/metron/stellar/dsl/functions/StringFunctions.java
---
    @@ -550,4 +548,90 @@ else if(var.length() == 0) {
           return new ParseException("Unable to parse JSON string");
         }
       }
    +
    +  @Stellar(name = "JSON_TO_MAP"
    +          , description = "Returns a MAP object for the specified JSON string"
    +          , params = {
    +          "str - the JSON String to convert, may be null"
    +  }
    +          , returns = "a MAP object containing the parsed JSON string"
    +  )
    +  public static class JsonToMap extends BaseStellarFunction {
    +
    +    @Override
    +    public Object apply(List<Object> strings) {
    +
    +      if (strings == null || strings.size() == 0) {
    +        throw new IllegalArgumentException("[JSON_TO_MAP] incorrect arguments. Usage:
JSON_TO_MAP <JSON String>");
    +      }
    +      String var = (strings.get(0) == null) ? null : (String) strings.get(0);
    +      if (var == null) {
    +        return null;
    +      } else if (var.length() == 0) {
    +        return var;
    +      } else {
    +        ObjectMapper objectMapper = new ObjectMapper();
    +
    --- End diff --
    
    I have a question here.  If you just do the load, and the string is invalid, would you
not get the same exception?  What is the difference.  If the string is always valid, and that
is the most common case, then we are always doing 2* the processing.  That doesn't seem right
in a high volume stream system


---

Mime
View raw message