[
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.