通过Advanced Rest Client发送JSON数据时出现类转换错误

时间:2014-08-13 21:58:36

标签: java json rest neo4j

我正在使用Advanced Rest Client工具来测试服务器端java类,该类处理作为json对象发送的数据,并且遇到了一个让我难倒的错误。经过大量的Google搜索和试错尝试后,我现在转向SO。

有关问题的一些细节。

- >下面是传递给java类的测试数据。数据格式有效     - 通过验证工具验证数据。

[{ "Id":1,"Question":"What is the capital of Texas", "QuestionType":"SingleChoice",
"Options":[{ "Answer":1,"City":"Austin"}, { "Answer":2, "City":"Houston" }, { 
"Answer":3, "City":"El Paso" }] }] 

- >我正在使用Advanced Rest Client工具上的Post选项。

- > application / json是这篇文章的用途。

- >服务器端类是将信息发布到Neo4J数据库,从而发布到Neo4J    正在使用服务器。服务器已启动并正在运行,我可以发送其他服务器    交易到其他类没有问题。

- >当我使用上述数据集发送交易时,我遇到以下错误......

message: "java.util.ArrayList cannot be cast to java.util.Map"
exception: "BadInputException"
fullname: "org.neo4j.server.rest.repr.BadInputException"
stacktrace: [6]
  0:  "org.neo4j.server.rest.repr.formats.JsonFormat.readMap(JsonFormat.java:92)"
  1:  "org.neo4j.server.rest.repr.RepresentationFormat.
        readParameterList(RepresentationFormat.java:97)"
  2:  "org.neo4j.server.rest.web.ExtensionService.
       invokeGraphDatabaseExtension(ExtensionService.java:134)"
  3:  "java.lang.reflect.Method.invoke(Unknown Source)"
  4:  "org.neo4j.server.rest.transactional.
      TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:139)"
  5:  "java.lang.Thread.run(Unknown Source)" -
  cause: {
    message: "java.util.ArrayList cannot be cast to java.util.Map"
    exception: "ClassCastException"
    stacktrace: [7]
  0:  "org.neo4j.server.rest.domain.JsonHelper.jsonToMap(JsonHelper.java:53)"
  1:  "org.neo4j.server.rest.repr.formats.JsonFormat.readMap(JsonFormat.java:88)"
  2:  "org.neo4j.server.rest.repr.RepresentationFormat.
        readParameterList(RepresentationFormat.java:97)"
  3:  "org.neo4j.server.rest.web.ExtensionService.
         invokeGraphDatabaseExtension(ExtensionService.java:134)"
  4:  "java.lang.reflect.Method.invoke(Unknown Source)"
  5:  "org.neo4j.server.rest.transactional.
      TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:139)"
   6:  "java.lang.Thread.run(Unknown Source)"
      -
      fullname: "java.lang.ClassCastException" 
  }

考虑到上述情况,我倾向于在Advanced Rest Client工具级别而不是java类中遇到错误。原因是当在调用中使用不存在的类的名称时,我得到相同的错误。

不确定可以提供哪些其他信息来帮助解决此问题。如果您需要其他详细信息,请与我们联系。

提前致谢。

1 个答案:

答案 0 :(得分:1)

知道了!删除外括号([])就可以了。这样做有{}括号所包含的数据表明正在发送JSON对象(我相信)。