我已经玩了几个星期Neo4j 2.0 RC1.我正在使用Neo4j作为数据库编写
Spring Security实现.当我加载用户时,我从Neo4j得到的响应如下所示:
{
"columns" : [ "username", "password", "accountNonExpired","accountNonLocked", "credentialsNonExpired", "enabled" ],
"data" : [ [ "admin", "admin", true, false, true, false ]
}
最初只返回用户名和密码(两个字符串)和我能够执行此操作的字段:
class Result
{
private List columns = new ArrayList();
private List> data = new ArrayList>();
};
ClientRespose resp = webResource.path(path).type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).post(ClientResponse.class, body );
String s = response.getEntity(String.class);
Result r = new Gson().fromJson(s, Result.class);
当然,当我添加其他字段(布尔)时,我需要将Result更改为如下所示:
class Result
{
private List columns = new ArrayList();
private List> data = new ArrayList>();
};
我的代码仍然有效,但是当我尝试将任何数据项转换为String或Boolean时,我得到了“未能将对象转换为…”异常.这当然是因为没有类型信息,所以GSon正在创建Object实例来放置它.
所以我猜测必须有更好的方法来处理从Neo4j返回的JSON?
我可以以某种方式跳过JSON转换阶段并让Jersey HTTP客户端直接填充我的User对象吗?