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