У меня проблема, преобразующие струны «[3]» здесь:Как преобразовать строку в список в Groovy
p = {"results":["[3]","[3]"],"success":true,"version":"2.4.0","queryTime":63.102287}
в списки.
р [0] дает мне:
{"results":["[3]"],"success":true,"version":"2.4.0","queryTime":68.24303}
Так что я думал, что я мог бы использовать Eval.me (р [0]), но Тхет дает мне ошибку говоря:
{"message":"","error":"javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: static groovy.util.Eval.me() is applicable for argument types: (com.tinkerpop.gremlin.groovy.GremlinGroovyPipeline) values: [[GremlinStartPipe, GraphQueryPipe(has,vertex), IdentityPipe, PropertyPipe(Sannolikhet), RangeFilterPipe(0,0)]]\nPossible solutions: me(java.lang.String), me(java.lang.String, java.lang.Object, java.lang.String), is(java.lang.Object), use([Ljava.lang.Object;), _(groovy.lang.Closure), dump()","api":{"description":"evaluate an ad-hoc Gremlin script for a graph.","parameters":{"rexster.returnKeys":"an array of element property keys to return (default is to return all element properties)","rexster.showTypes":"displays the properties of the elements with their native data type (default is false)","load":"a list of 'stored procedures' to execute prior to the 'script' (if 'script' is not specified then the last script in this argument will return the values","rexster.offset.end":"end index for a paged set of data to be returned","rexster.offset.start":"start index for a paged set of data to be returned","params":"a map of parameters to bind to the script engine","language":"the gremlin language flavor to use (default to groovy)","script":"the Gremlin script to be evaluated"}},"success":false}
Любой который знает, как это можно сделать без использования Eval.me?
EDIT
Чтобы уточнить, первая часть моего сценария:
p = g.V('containerName','CvsRisk').outE.inV.hasNot('Sannolikhet',null).'Sannolikhet';
я «извлечь» все вершины в контейнере с ИмяКонтейнера CvsRisk, который имеет свойство с именем «Sannolikhet» что не является нулевым. Выполнение этой части сценария дает мне следующий ответ от сервера:
{"results":["[3]","[3,3]","[3,3]","[3,3]","[3,3]","[3,3]","[3,3]","[3]","[3,3]","[3]","[3,3]","[3,3]"],"success":true,"version":"2.4.0","queryTime":20.429118}
Что я хочу, так как все мои свойства названных «Sannolikhet» содержит массив значений.
Оттуда я хочу перебирать результат и суммировать значения в строках, но для этого мне нужно преобразовать строки в списки.
так белый по коду вы используете прямо сейчас? – cfrick
Я пытался использовать Eval.me, но это не работает, или что вы имеете в виду? – agiledevpro
В первую очередь вы конвертируете экземпляр класса GremlinGroovyPipeline, а не 'String'. так что вам нужно сделать следующее: 'Eval.me (p [0] .toString())' – injecteer