Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在整个JSON映射中将单个值作为JSON流_Java_Json_Webservice Client - Fatal编程技术网

Java 在整个JSON映射中将单个值作为JSON流

Java 在整个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

我有一个以下格式的JSON

{a:b,内容:,x:y}

等等

文件A太大,我无法打开并将其加载到主内存。 有没有任何选项可以让我将这个json流式传输到一个Web服务,而不用使用Java的大部分主内存

例如,如果有这样的东西,那就太棒了 writer=new JsonWriternew FileWriteruser.json

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管道传递响应呢