Class TupleJSONUtil


  • public final class TupleJSONUtil
    extends Object
    Utilities for dealing with tuples represented in JSON format.
    • Method Detail

      • setTuple

        public static void setTuple​(Tuple tuple,
                                    Object jsonObject,
                                    boolean strict)
                             throws StreamBaseException
        Set the fields of a tuple based on the contents of a JSON object
        Parameters:
        tuple - the tuple to set
        jsonObject - the JSON object; must have at least the fields of the tuple's schema
        strict - whether to throw an exception when fields are missing from tuple's schema
        Throws:
        com.alibaba.fastjson.JSONException
        StreamBaseException
      • setTuple

        public static void setTuple​(Tuple tuple,
                                    Object jsonObject,
                                    boolean strict,
                                    String timestampFormat)
                             throws StreamBaseException
        Set the fields of a tuple based on the contents of a JSON object
        Parameters:
        tuple - the tuple to set
        jsonObject - the JSON object; must have at least the fields of the tuple's schema
        strict - whether to throw an exception when fields are missing from tuple's schema
        timestampFormat - the timestamp format to use when converting
        Throws:
        com.alibaba.fastjson.JSONException
        StreamBaseException
      • setTuple

        public static void setTuple​(Tuple tuple,
                                    Object jsonObject,
                                    boolean strict,
                                    String timestampFormat,
                                    boolean numericTimestampsAsInterval)
                             throws StreamBaseException
        Set the fields of a tuple based on the contents of a JSON object
        Parameters:
        tuple - the tuple to set
        jsonObject - the JSON object; must have at least the fields of the tuple's schema
        strict - whether to throw an exception when fields are missing from tuple's schema
        timestampFormat - the timestamp format to use when converting
        numericTimestampsAsInterval - If true any numeric values in a timestamp field will be converted to interval types, if false they are considered timestamp
        Throws:
        StreamBaseException - error initializing tuple from JSON
      • setTupleFromJSON

        public static void setTupleFromJSON​(Tuple tuple,
                                            String JSONString)
                                     throws StreamBaseException
        Set the fields of a tuple based on the contents of a JSON string
        Parameters:
        tuple - the tuple to set
        JSONString - the JSON string; must have at least the fields of the tuple's schema
        Throws:
        com.alibaba.fastjson.JSONException
        StreamBaseException
      • setTupleFromJSON

        public static void setTupleFromJSON​(Tuple tuple,
                                            String JSONString,
                                            String timestampFormat)
                                     throws StreamBaseException
        Set the fields of a tuple based on the contents of a JSON string
        Parameters:
        tuple - the tuple to set
        JSONString - the JSON string; must have at least the fields of the tuple's schema
        timestampFormat - the timestamp format to use when converting
        Throws:
        com.alibaba.fastjson.JSONException
        StreamBaseException
      • setTupleFromJSON

        public static void setTupleFromJSON​(Tuple tuple,
                                            String JSONString,
                                            String timestampFormat,
                                            boolean numericTimestampsAsInterval)
                                     throws StreamBaseException
        Set the fields of a tuple based on the contents of a JSON string
        Parameters:
        tuple - the tuple to set
        JSONString - the JSON string; must have at least the fields of the tuple's schema
        timestampFormat - the timestamp format to use when converting
        numericTimestampsAsInterval - If true any numeric values in a timestamp field will be converted to interval types, if false they are considered timestamp
        Throws:
        com.alibaba.fastjson.JSONException
        StreamBaseException
      • setTupleFromJSONLoose

        public static void setTupleFromJSONLoose​(Tuple tuple,
                                                 String JSONString)
                                          throws StreamBaseException
        Set the fields of a tuple based on the contents of a JSON string. If the JSON string does not have enough fields as specified in the tuple, these will just be populated with nulls.
        Parameters:
        tuple -
        JSONString -
        Throws:
        StreamBaseException
      • setTupleFromJSONLoose

        public static void setTupleFromJSONLoose​(Tuple tuple,
                                                 String JSONString,
                                                 String timestampFormat)
                                          throws StreamBaseException
        Set the fields of a tuple based on the contents of a JSON string. If the JSON string does not have enough fields as specified in the tuple, these will just be populated with nulls.
        Parameters:
        tuple -
        JSONString -
        timestampFormat -
        Throws:
        StreamBaseException
      • setTupleFromJSONLoose

        public static void setTupleFromJSONLoose​(Tuple tuple,
                                                 String JSONString,
                                                 String timestampFormat,
                                                 boolean numericTimestampsAsInterval)
                                          throws StreamBaseException
        Set the fields of a tuple based on the contents of a JSON string. If the JSON string does not have enough fields as specified in the tuple, these will just be populated with nulls.
        Parameters:
        tuple -
        JSONString -
        timestampFormat -
        numericTimestampsAsInterval - If true any numeric values in a timestamp field will be converted to interval types, if false they are considered timestamp
        Throws:
        StreamBaseException
      • toJSONString

        public static String toJSONString​(Tuple t,
                                          EnumSet<TupleJSONUtil.Options> options,
                                          String timestampFormat)
        Convert a tuple to its JSON representation.
        Parameters:
        t - The tuple to serialize
        options - The serialization options TupleJSONUtil.Options
        timestampFormat - the timestamp format to use when converting
        Returns:
        the JSON string
      • toJSONMapString

        public static String toJSONMapString​(Tuple tuple,
                                             String timeStampFormat)
        Return the JSON string representation of the supplied tuple. Prefer maps to lists for expressing hierarchy. If tuple includes timestamp, format it based on timeStampFormat.
        Parameters:
        tuple - The tuple to serialize
        timeStampFormat - the timestamp format to use when converting
        Returns:
        the JSON string
      • toJSONMapString

        public static String toJSONMapString​(Tuple tuple)
        Return the JSON string representation of the supplied tuple. Prefer maps to lists for expressing hierarchy.
        Parameters:
        tuple - The tuple to serialize
        Returns:
        the JSON string
      • toJSONListString

        public static String toJSONListString​(Tuple tuple,
                                              String timeStampFormat)
        Return the JSON string representation of the supplied tuple. Prefer lists to maps for expressing hierarchy. If tuple includes timestamp, format it based on timeStampFormat.
        Parameters:
        tuple - The tuple to serialize
        timeStampFormat - the timestamp format to use when converting
        Returns:
        the JSON string
      • toJSONListString

        public static String toJSONListString​(Tuple tuple)
        Return the JSON string representation of the supplied tuple. Prefer lists to maps for expressing hierarchy.
        Parameters:
        tuple - The tuple to serialize
        Returns:
        the JSON string
      • toJSONMapStringSingleQuote

        public static String toJSONMapStringSingleQuote​(Tuple tuple)
        Return the single quote JSON string representation of the supplied tuple. Prefer maps to lists for expressing hierarchy.
        Parameters:
        tuple - The tuple to serialize
        Returns:
        the JSON string
      • jsonPath

        public static String jsonPath​(String json,
                                      String jsonPath)
        Return the string representation of objects extracted from json according to path

        See https://github.com/json-path/JsonPath for full documentation.

        Parameters:
        json - string representation of json to parse
        jsonPath - string path to traverse to extract objects out of json
        Returns:
        string representation of list of extracted json results; always returns results as a list (which is then stringified)
      • toJSONString

        public static String toJSONString​(Collection<Tuple> tuples)
        Parameters:
        tuples - the tuples to convert to JSON
        Returns:
        a string of JSON representing an array of tuples