java - 通过 Advanced Rest Client 发送 JSON 数据时发生类转换错误

标签 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 类中遇到错误。原因是当在调用中使用不存在的类的名称时,我会得到相同的错误。

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

提前致谢。

最佳答案

明白了!删除外括号 ([ ]) 就可以了。这样做会使 {} 括号中的数据表明正在发送 JSON 对象(我相信)。

关于java - 通过 Advanced Rest Client 发送 JSON 数据时发生类转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25296899/

相关文章:

javascript - 从 json 文件中删除元素而不获取 "null"

Django Rest Framework,POSTable 外部数据

java - 如何检查字符串是否为空?

java - Vaadin 主视图

sql - Golang 服务器 : send JSON with SQL query result that has variable number of columns

json - boolean 值是有效的 JSON

java - 如何在java http请求中获取代理响应?

java - SHA-1 key 生成 ... 访问被拒绝

ruby - 在 rest-client 中找到 POST 请求的 redirect-url

java - JERSEY 使用 jquery/AJAX 上传文件