谁能推荐一个 Java 的 JSON 库,它允许我以非阻塞的方式提供传入的数据块?我已读完更好的 Java JSON 库 https://stackoverflow.com/questions/338586/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 对象”)被分成几部分。
我发现的最接近的是这个异步 json 库 http://code.google.com/p/async-json-library/这确实almost正是我想要的,除了它无法恢复实际字符串或其他数据值被分割的对象。
有一些阻塞流/增量 JSON 解析器(根据有 JSON 的流 API 吗? https://stackoverflow.com/questions/444380/is-there-a-streaming-api-for-json/823632#823632);但对于异步,我还没有意识到。
您引用的库的名称似乎很糟糕;它似乎并没有进行真正的异步处理,而只是允许解析 JSON 文档序列(其他多个库也允许这样做)
如果有人真的想要这个,那么编写一个也不是不可能的——对于 XML 来说,有Aalto http://wiki.fasterxml.com/AaltoHome,并且处理 JSON 比 XML 简单得多。
对于它的价值来说,实际上有此功能请求 http://jira.codehaus.org/browse/JACKSON-39添加非阻塞解析模式Jackson http://jackson.codehaus.org;但很少有用户表示有兴趣完成这项工作(通过对功能请求进行投票)。
编辑:(2016-01)虽然不是异步的,但 Jackson ObjectMapper 也允许对流的各个部分进行方便的逐子树绑定 - 请参阅ObjectReader.readValues()
(ObjectReader
创建自ObjectMapper
),或缩写版本ObjectMapper.readValues(...)
。注意尾随s
在那里,这意味着对象流,而不仅仅是单个对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)