gpt4 book ai didi

java - 用于 Java 的增量流式 JSON 库

转载 作者:搜寻专家 更新时间:2023-10-31 20:30:38 24 4
gpt4 key购买 nike

谁能推荐一个用于 Java 的 JSON 库,它允许我以非阻塞的方式在数据 block 传入时向其提供数据 block ?我已通读 A better Java JSON library和类似的问题,但还没有找到我想要的。

本质上,我想要的是一个允许我执行以下操作的库:

String jsonString1 = "{ \"A broken";
String jsonString2 = " json object\" : true }";

JSONParser p = new JSONParser(...);
p.parse(jsonString1);
p.isComplete(); // returns false
p.parse(jsonString2);
p.isComplete(); // returns true
Object o = p.getResult();

请注意实际的键名(“一个损坏的 json 对象”)被分割成多个部分。

我找到的最接近的是这个 async-json-library几乎完全符合我的要求,除了它无法恢复实际字符串或其他数据值被分割成两部分的对象。

最佳答案

有一些阻塞流式/incemental JSON 解析器(根据 Is there a streaming API for JSON? );但对于异步,我还没有意识到。您提到的库似乎命名不当;它似乎并没有进行真正的异步处理,而只是允许一个人解析 JSON 文档序列(其他多个库也允许这样做)

如果有人真的想要这个,写一个也不是不可能的——对于 XML 有 Aalto ,并且处理 JSON 比 XML 简单得多。对于它的值(value),实际上有 this feature requestJackson 添加非阻塞解析模式;但很少有用户表示有兴趣完成这项工作(通过投票支持功能请求)。

编辑:(2016 年 1 月)虽然不是异步的,但 Jackson ObjectMapper 也允许通过部分流的子树绑定(bind)方便地创建子树——参见 ObjectReader.readValues()( ObjectReaderObjectMapper 创建)或 ObjectMapper.readValues(...) 的快捷版本。请注意其中的尾随 s,这意味着对象流,而不仅仅是一个对象。

关于java - 用于 Java 的增量流式 JSON 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6241159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com