2017-02-27 1 views
0

Beim Abfragen von ArangoDB mit einer AQL-Abfrage mithilfe des Java-Treibers wird der Schrägstrich in der _id-Eigenschaft mit Escapezeichen versehen.ArangoDB Java-Treiber Forwardslash in _id ist esced

Das Ergebnis ist:

{"_id":"sed\/CLI_ELE_ALL_400_01.324fd0e4-cf8a-4e39-9889-d1c50ab3594c","_key":"... 

aber ich würde dies mag:

{"_id":"sed/CLI_ELE_ALL_400_01.324fd0e4-cf8a-4e39-9889-d1c50ab3594c","_key":"... 

Code-Schnipsel:

String query = "for node in nodes return node" 

    try { 

     ArangoCursor<String> cursor = driver.query(query, null, null, String.class); 

     if (cursor.hasNext()) { 
      data = cursor.next(); 
      System.out.println(data)); 
     } 

    } catch (ArangoDBException ex) {} 

    return data; 

Gibt es eine Möglichkeit, dies zu umgehen, ohne ersetzen zu müssen regex alles??

Antwort

0

Sie setzen den Parameter type in Ihrem Aufruf query() auf String, dies führt den Java-Treiber, das Ergebnis in das Json-Format zu analysieren. In Json ist es richtig, dass / und andere Zeichen sind maskiert. Jeder Json-Parser sollte damit umgehen können.

Der Java-Treiber unterstützt bereits das Parsen des Ergebnisses in einen POJO, Map<String, Object> oder in die Dienstklasse BaseDocument ohne den Umweg über Json. Sie können einige Beispiele für diese here finden.