java - 如何使用 java 在 Couchdb 中存储原始 JSON

标签 java json couchdb

我目前正在解析一个 Web 服务,该服务向我提供 Json 文档作为响应。我想使用 java 将它们存储在 CouchDb 中,但我找不到方法。使用 java 的 couchdb 库(Ektorp、couchdb4j 等...),我只能将 java 文档存储在数据库中,这意味着我必须将原始 json 转换为 java 文档才能存储它们。 你知道我如何直接存储原始 json 吗? 非常感谢提前

最佳答案

Ektop 文档提供 an example使用存储在文件中的 JSON 更新文档:

 File file = someMethodToGetFile();
 InputStream jsonInputStream = new FileInputStream(file);
 db.update("document_id",
           jsonInputStream,
           file.length(),
           null);

如果您的 JSON 位于 Java 程序的内存中(例如作为字符串),则可以将字符串包装在 ByteArrayInputSteam 中,而不是使用 FileInputStream:

 String yourJsonString = ...

 InputStream jsonInputStream = new ByteArrayInputStream(yourJsonString.getBytes());
 db.update("document_id",
           jsonInputStream,
           file.length(),
           null);

或者,CouchDB 是通过 Restful API 访问的,因此您可以使用任何理解 REST 的 Java 库与 CouchDB 进行交互,例如使用 Apache HttpClient :

String yourJsonString = ...

StringRequestEntity requestEntity = new StringRequestEntity(
    yourJsonString,
    "application/json",
    "UTF-8");

PostMethod postMethod = new PostMethod("http://couchdb.server/database");
postMethod.setRequestEntity(requestEntity);

int statusCode = httpClient.executeMethod(postMethod);

关于java - 如何使用 java 在 Couchdb 中存储原始 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28274811/

相关文章:

java - 从 Play Framework 中的热重载中排除类

java - 节点(和对象)相互分配时实际如何工作

java - 最好的 Java 示例站点是什么?

javascript - pouchdb 中的 CORS 错误

curl - 使用 CouchDB 进行基本身份验证

couchdb - 如何在 CouchDB 中编写 SELECT COUNT(DISTINCT field) 查询?

java - 当Redis缓存不可用时如何防止所有RedisConnectionFailureException

javascript - Node : how to access json key that is a filename with dot

mysql - 如何在 MySQL 中存储和获取封装的数组数据

xml - XML 在未来还有一席之地吗?