我已经玩了几个星期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 Listcolumns = 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 Listcolumns = new ArrayList (); private List > data = new ArrayList >(); };
我的代码仍然有效,但是当我尝试将任何数据项转换为String或Boolean时,我得到了"未能将对象转换为..."异常.这当然是因为没有类型信息,所以GSon正在创建Object实例来放置它.
所以我猜测必须有更好的方法来处理从Neo4j返回的JSON?
我可以以某种方式跳过JSON转换阶段并让Jersey HTTP客户端直接填充我的User对象吗?