Java 在整个JSON映射中将单个值作为JSON流
我有一个以下格式的JSON {a:b,内容:,x:y} 等等 文件A太大,我无法打开并将其加载到主内存。 有没有任何选项可以让我将这个json流式传输到一个Web服务,而不用使用Java的大部分主内存 例如,如果有这样的东西,那就太棒了 writer=new JsonWriternew FileWriteruser.jsonJava 在整个JSON映射中将单个值作为JSON流,java,json,webservice-client,Java,Json,Webservice Client,我有一个以下格式的JSON {a:b,内容:,x:y} 等等 文件A太大,我无法打开并将其加载到主内存。 有没有任何选项可以让我将这个json流式传输到一个Web服务,而不用使用Java的大部分主内存 例如,如果有这样的东西,那就太棒了 writer=new JsonWriternew FileWriteruser.json writer.beginObject(); // { writer.name("name"); writer.value("messagesPart1"); // "mes
writer.beginObject(); // {
writer.name("name");
writer.value("messagesPart1"); // "messages" :
writer.flush();
writer.value("messagesPart2"); // "messages" :
writer.flush();
writer.value("messagesPart3"); // "messages" :
writer.endObject();
}
user.json fie的内容是
{name:messagespart1 messagespart2 messagespart3}我建议您使用Java中最强大的Json库之一的Jackson库 它具有将Json流式传输到OutpuStream的功能,因此您可以使用web套接字或开放连接来输出内容。。。。这是高级文档: 还有一个用例twitter使用这个生成器,检查这个
但是Jakson quick start也有一个很好的这个博客链接也有一些有用的信息-你可能正在寻找类似post的东西?我去了tru Jackson,但是现在还不清楚如何流式传输键值对中的一个值部分。我希望看到writer.nameContent.valueBufferedStream这样的东西实际上这没有意义,因为它太大了,无法保存在内存中。我猜你必须把整个物体流出来,这就是我被卡住的地方。如果将整个json字符串写入单个文件,则可以流式传输整个对象。但这里的just on value必须是整个json都存在于文件中。更好的方法是序列化整个对象,而不仅仅是大属性,因为我不希望json实例处理这样的流属性。特别是当它作为响应被渲染时,内存也会被破坏。那么,如果直接用json管道传递响应呢