我正在使用 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 类中遇到错误。原因是当在调用中使用不存在的类的名称时,我会得到相同的错误。
不确定可以提供哪些其他信息来帮助解决此问题。如果您需要更多详细信息,请告诉我。
提前致谢。
最佳答案
明白了!删除外括号 ([ ]) 就可以了。这样做会使 {} 括号中的数据表明正在发送 JSON 对象(我相信)。
关于java - 通过 Advanced Rest Client 发送 JSON 数据时发生类转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25296899/