Java utility library (with static methods) to parse array-based nested expressions.
In the Packages section, select the package expression-utils-java.lib Follow the installation instructions Or, download the library jar file and include in your Java project See the Javadoc for detailed documentation. See the test cases for detailed usage examples. import in .eko .exprutils .ExpressionParser ;
// Single expression example: 2 + 3
(int )ExpressionParser .parseExpression ("['+', 2, 3]" ); // returns 5 // Nested expression example: 2 + (3 * 4)
(int )ExpressionParser .parseExpression ("['+', 2, ['*', 3, 4]]" ); // returns 14 Class Method Inputs Output Desc ExpressionParser parseExpression() expression (string encoded Json array) parsed value (Object) returns parses an expression isValidOperator() String operator boolean Checks if the provided operator is supported by the expressionParser interpolate() String expr, Map<String, String> data interpolated string Interpolate/replace values of dollar-curly-brace-wrapped variables into a string Hash getHash() String input, String type hash Generate hash of a string using the type algorithm (MD5, SHA-256, etc) sha256() String input sha-256 hash Generate SHA-256 hash of a string sha512() String input sha-512 hash Generate SHA-512 hash of a string md5() String input md5 hash Generate md5 hash of a string JsonObj get() String/JSONObject obj, String key, String default_value value (Object) Retrieve deep/nested value from a JSON Object set() String obj, String key, Object value object (String) Set a key-value pair deep within a JSON Object JWT generate() ... generated token Generate JWT (token) with the given configuration parse() ... claim map Validates & parses a JWT (token)
Operators supported by the parseExpression() function: Operator Purpose Expression Example Result + Add ['+', 2, 3] 5 - Subtract ['-', 3, 2] 1 * Multiply ['*', 2, 3] 6 / Divide ['/', 4, 2] 2 CONCAT Concatenate string ['CONCAT', 'Hello', 'World'] HelloWorld GET Get nested-value from object ['GET', {'b':{'d':{'e':3}}}, 'b.d.e'] 3 SET Set nested-value into object ['SET', {'b':{'d':{}}}, 'b.d.e', 4] {'b':{'d':{'e':4}}} SHA256 Get sha-256 hash ['SHA256', 'hello world'] b94d27...cde9 SHA512 Get sha-512 hash ['SHA512', 'hello world'] 309ecc48...cd76f MD5 Get MD5 hash ['MD5', 'hello world'] 5eb63...5acdc3 JWT Generate JWT ['JWT', '<secret-key>', 'HS256', '{"issuer":...}'] generated token
Make sure to update the version number in the lib/build.gradle file Merge changes into the main branch Goto the Releases section and create a new release A new build will automatically be created and published to Github Packages