[ 
https://issues.apache.org/jira/browse/HIVE-1575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12924085#action_12924085
 ] 

Mike Lewis commented on HIVE-1575:
----------------------------------

Yep, I will take care of it once I get a few free cycles.  One concern I have 
in my patch is this part:

{code:java} 
char firstChar = jsonString.trim().charAt(0);
if (firstChar == '{') {
        // object logic ...
} else if (firstChar == '[') {
        // array logic
}
{code}

Basically, I want to get the first non-whitespace character.  Is there a faster 
way to do this rather than just trimming (and essentially creating a new 
string).  Would a regexp be more efficient?

Also, changing the extractObjectCache to have an array as a key might reduce 
the efficiency a bit.  Is there an alternative that I may have not thought of?


> get_json_object does not support JSON array at the root level
> -------------------------------------------------------------
>
>                 Key: HIVE-1575
>                 URL: https://issues.apache.org/jira/browse/HIVE-1575
>             Project: Hive
>          Issue Type: Improvement
>          Components: UDF
>    Affects Versions: 0.7.0
>            Reporter: Steven Wong
>            Assignee: Mike Lewis
>         Attachments: 
> 0001-Updated-UDFJson-to-allow-arrays-as-a-root-object.patch
>
>
> Currently, get_json_object(json_txt, path) always returns null if json_txt is 
> not a JSON object (e.g. is a JSON array) at the root level.
> I have a table column of JSON arrays at the root level, but I can't parse it 
> because of that.
> get_json_object should accept any JSON value (string, number, object, array, 
> true, false, null), not just object, at the root level. In other words, it 
> should behave as if it were named get_json_value or simply get_json.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to