[ASTERIXDB-2313][EXT] JSONDataParser support for non-object roots

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- JSONDataParser API should support parsing documents
  with non-objects at the root

Change-Id: I313924d0704f5ac735e592b46ed41e0e2f7cfd06
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2459
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/JSONDataParser.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/JSONDataParser.java
index bbe4a60..ce8780d 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/JSONDataParser.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/JSONDataParser.java
@@ -119,6 +119,18 @@
         }
     }
 
+    public boolean parseAnyValue(DataOutput out) throws HyracksDataException {
+        try {
+            if (nextToken() == ADMToken.EOF) {
+                return false;
+            }
+            parseValue(BuiltinType.ANY, out);
+            return true;
+        } catch (IOException e) {
+            throw new RuntimeDataException(ErrorCode.RECORD_READER_MALFORMED_INPUT_STREAM, e);
+        }
+    }
+
     @Override
     public boolean reset(InputStream in) throws IOException {
         setInputStream(in);