我有一个在多个应用程序之间共享的 couchbase 数据库,将文档存储为 json。我似乎无法将数据导入我的 Java 应用程序,因为它似乎依赖于 native Java 二进制序列化。
这段代码:
CouchbaseClient client = new CouchbaseClient(hosts,"bucket","");
System.out.println((String)client.get("someKey"));
结果
net.spy.memcached.transcoders.SerializingTranscoder: Failed to decompress data
java.util.zip.ZipException: Not in GZIP format
因为它默认尝试反序列化。我注意到我可以提供自己的转码器,但我真的只想要原始字符串数据,这样我就可以使用 gson 或其他方式自己对它进行 json 解析。似乎没有可用的转码器给我这个。
couchbase 文档有一个设置 json 的示例,但没有一个用于读取它。人们如何将 json 读入 java?
最佳答案
首先,这个问题很快就会消失,因为 Couchbase“2.0 SDK”在彼此之间实现了通用标志,因此不会出现此类问题。 Michael's blogs如果你想看看这里发生了什么,这是一本很好的读物。出现问题的原因首先是在 1.x 系列中,Couchbase 试图保持与现有应用程序代码和 memcached 的兼容。在 memcached 世界中,客户端都是由不同的人在不同的时间编写的。
根据异常情况,我相信您可能正在尝试读取 .NET 存储的项目。我有一个 sample transcoder你可以使用几周前的这个。
关于java - 如何在 java 中从 couchbase 获取 json 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26151425/