To lift server performance, when we query some data and result is hug, in which case, large memory will be used to produce the result json string.
One solution is to use streaming JSON responses.
@Path("/fof/{userName}") @GET @Produces(MediaType.APPLICATION_JSON) public Response getFOF(final @PathParam("userName") String userName) throws JSONException { StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { // TODO Auto-generated method stub JsonGenerator jg = objectMapper.getJsonFactory().createJsonGenerator(os, JsonEncoding.UTF8); jg.writeStartObject(); jg.writeFieldName("fofs"); jg.writeStartArray(); try (Transaction tx = template.getGraphDatabaseService().beginTx()) { Iterable<User> fofs = userRepo.getFriendsOfFriends(userName); Iterator<User> it = fofs.iterator(); while (it.hasNext()) { User fof = it.next(); // jg.writeString(fof.getName()); jg.writeObject(fof); } tx.success(); jg.writeEndArray(); jg.writeEndObject(); jg.flush(); jg.close(); } } }; return Response.ok().entity(stream).type(MediaType.APPLICATION_JSON).build(); }
Warning: jg.writeObject(fof) will write the whole user object to result, which is not my expected. I just want to partial properties in the User object while ingore others. How to satisify my needs?
the similar commands are
http://stackoverflow.com/questions/20978383/convert-same-pojo-into-json-and-xml-but-ignore-some-properties-for-json
https://github.com/FasterXML/jackson-databind/issues/95
The simple way is to manually marshell you expected properties likes
jg.writeStartObject(); jg.writeFieldName("name"); jg.writeString(fof.getName()); jg.writeFieldName("phoneNum"); jg.writeString(fof.getPhoneNumber()); jg.writeEndObject();
The result json for query
curl http://localhost:7474/fifo/user/fof/liwk
is
{"fofs":[{"name":"losiy","phoneNum":"15658653696"},{"name":"jack","phoneNum":null}]}
References
http://neo4j.com/docs/stable/server-unmanaged-extensions.html#server-unmanaged-extensions-streaming
相关推荐
Neo4j Vue 安装步骤 克隆或下载该库到本地 下载neo4j并安装到本地,启动neo4j服务 进入到该工程的根目录,输入命令:npm run update进行npm包的导入 使用命令:npm run dev启动该工程 默认端口是:8081 neo4j账号...
Neo4j Vue 安装步骤 克隆或下载该库到本地 下载neo4j并安装到本地,启动neo4j服务 进入到该工程的根目录,输入命令:npm run update进行npm包的导入 使用命令:npm run dev启动该工程 默认端口是:8081 neo4j账号...
connections = { default : 'restful-neo4j' , restful - neo4j : { module : 'sails-restful-neo4j' , type : 'json' , // expected response type (json | string | http) host : 'foo.myneo4j.com' , //
电影示例应用 如何一起使用Spring Boot,Spring Data和Neo4j。 Spring Data Neo4j可以在基于Spring的应用程序中方便地集成Neo4j。 它提供了对象图映射(OGM)功能以及Spring Data项目共有的其他功能。 笔记该项目...
Neo4j Vue安装步骤克隆或下载该库到本地下载neo4j并安装到本地,启动neo4j服务进入到该工程的根目录,输入命令:npm run update进行npm包的导入使用命令:npm run dev启动该工程默认端口是:8081 neo4j账号信息: ...
该驱动程序支持各种类型的数据库传输: 通过使用jdbc:neo4j:bolt://<host>:<port>/的Bolt协议(3.0.x至3.2.x) 通过使用jdbc:neo4j:http://<host>:<port>/的HTTP协议(2.x +) 展望未来,还将支持: 直接文件连接...
DR $ docker run --name neo4j bitnami/neo4j:latestDocker撰写$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-neo4j/master/docker-compose.yml > docker-compose.yml$ docker-compose up...
imap2neo4j: imap2neo4j imapServer imapUsername imapPassword imapMailbox neo4jServer [neo4jUsername] [neo4jPassword] [paging, eg import by batches of 1000] [specific range of messages, eg 50
通过在 conf/neo4j-server.properties 中添加一行来配置 Neo4j: org.neo4j.server.thirdparty_jaxrs_classes=org.neo4j.example.unmanagedextension=/example 启动 Neo4j 服务器。 写评论 curl ...
Sublime Text 2/3 插件:Neo4j Sublime 是最好的跨平台编辑器之一,所以我想为什么不创建一个简单的 Neo4j 插件呢?... 编辑用户名和密码(默认为neo4j:neo) 结果显示在控制台中(Ctrl+~)打开C
**Neo4J社区版3.5.12 Windows安装与使用指南** Neo4J是一款流行的图数据库管理系统,尤其适用于处理复杂关系数据。图数据库利用图形结构来存储和查询数据,其核心理念是节点、边(关系)和属性,这使得在处理网络、...
schemaless-graphql-neo4j 将无类型的动态GraphQL查询转换为Cypher。 签出,以更好地查看您可以编写的查询。入门$ npm install schemaless-graphql-neo4j :warning: 图书馆尚未发布操场您可以开始使用开发人员游乐场...
**Node.js on Neo4j: 在图形数据库上构建应用** 标题中的"nodejs-on-neo4j"指的是一项使用Node.js与Neo4j图形数据库交互的实践项目。这个项目通常涉及利用Node.js的灵活性和Neo4j的强大图数据处理能力来开发应用...
egg-neo4j Neo4j用于鸡蛋框架。安装$ npm i egg-neo4j --save用法// {app_root}/config/plugin.jsexports . neo4j = { enable : true , package : 'egg-neo4j' ,} ;配置// {app_root}/config/config.default....
【标题】"neo4j:所有人的图表"指的是开源图数据库管理系统Neo4j,它将数据以图形结构的形式存储和处理,便于理解复杂的关系。在信息化时代,数据之间的关联性日益增强,图数据库如Neo4j应运而生,成为理解和分析...
标题中的“spring-graph-neo4j:Neo4j的春天”暗示了我们将探讨Spring框架与图数据库Neo4j的结合使用。在Java开发领域,Spring框架是一个广泛使用的开源框架,它提供了一整套用于构建企业级应用的服务和工具。而Neo4j...
【标题】:“NBD_Tutorials_Neo4J:PJATK NDB教程的Neo4J分配” 【描述】:“NBD_Tutorials_Neo4J”指的是一个关于使用Neo4J数据库进行数据处理和分析的教程,特别关注的是与PJATK(Probabilistic Joint Anomaly ...
'Neo4j' => Neo4j\OGM\Facades\Neo4j::class, ], ``` 5. **配置服务**:在`app/Providers/AppServiceProvider.php`的`boot`方法中加载配置文件和启动Neo4j客户端: ```php public function boot() { $this->app->...
Neo4j Neo4j 是一个高度可扩展、健壮(完全 ACID)的原生图形数据库。 Neo4j 被全球数以千计的领先企业、初创公司、企业和政府用于任务关键型应用程序。 使用存储库上的 Dockerfile,您就可以使用 docker neo4j ...
标题中的"streams-persist-neo4j:Neo4j扩展需要针对Apache流的GPL"指出,这是一款与Apache流相关的Neo4j扩展项目,它可能是一个库或者框架,用于将数据流式处理到Neo4j数据库中。"GPL"则表示这个项目遵循的是GNU ...