我想返回N1QLQueryResult
作为我的REST API
的响应。下面是代码:
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody ResponseEntity<?> get() {
List<N1qlQueryRow> result = null;
try {
Cluster cluster = CouchbaseCluster.create("localhost");
Bucket bucket = cluster.openBucket("myBucket", "xyz");
bucket.bucketManager().createN1qlPrimaryIndex(true, false);
N1qlQueryResult queryResult = bucket.query(N1qlQuery.simple("select * FROM myBucket"));
queryResult.forEach(System.out::println);
result = queryResult.allRows();
} catch (final Exception exception) {
exception.printStackTrace();
}
return ResponseEntity.ok(result);
}
我收到错误消息:
无法写入内容:未找到类com.couchbase.client.java.query.defaultn1qlqueryrow的序列化程序,也未找到创建BeanSerializer的属性(为避免异常,禁用SerializationFeature.fail_on_empty_beans)(通过引用链:java.util.ArrayList[0]);嵌套异常为com.fasterxml.jackson.databind.JSONMappingException:未找到类com.couchbase.client.java.query.defaultn1QLQueryRow的序列化程序,也未发现创建BeanSerializer的属性(为避免异常,禁用SerializationFeature.fail_on_empty_beans)(通过引用链:java.util.ArrayList[0])
解决办法是什么?我想以json
的形式返回响应。
默认情况下,当bean为空
时,objectmapper
失败。我们可以像下面这样禁用它:
ObjectMapper mapper = new ObjectMapper();
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
但在您的情况下,它并不能解决问题,因为结果无论如何都是空的。返回不表示POJO
本身的type
-s不是一个好主意。N1QLQueryResult
和DefaultAsyncn1QLQueryRow
没有经典的getters
并且Jackson
默认情况下不识别类似于value()
的方法。我建议创建map
并手动生成所需的输出和包含所需的属性:
Map<String, Object> n1QlResult = new HashMap<>();
n1QlResult.put("status", result.status());
// other ...
n1QlResult.put("rows", result.allRows()
.stream()
.map(i -> i.value().toMap())
.collect(Collectors.toList()));
最后返回:
return ResponseEntity.ok(n1QlResult);
当然,当您有许多这样的方法时,您可以编写公共层,将这类对象转换为map
或编写自定义序列化程序,并通过spring
容器配置objectmapper
用户。
如果要只返回行,请编辑
返回:
result.allRows()
.stream()
.map(i -> i.value().toMap())
.collect(Collectors.toList())
问题内容: 我想返回axios的响应,但始终返回的响应是不确定的: 控制台始终记录为未定义。他们以任何方式返回此响应。 问题答案: console.log不会等到该功能完全完成后再进行记录。这意味着您将必须进行异步处理,主要有两种方法: 回调-这是当您将函数作为参数传递到现有函数中时,将在axios调用完成后执行。这是如何与您的代码一起使用的: Promise-实现此目的的最简单方法是将其放在函数
60657883876982836210323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232606578878369829583846584858362797560476578878369829583846584858362103232323232323232
当我使用MVC控制器时,我使用“返回OK(对象)”或“返回BadRequest(ErrorMessage)”等。 我怎样才能实现这是剃刀页? 我尝试返回新的JSON result(object);这在状态代码为200时有效。但是如果我想返回带有JSON错误消息的状态代码400呢?
我有一个函数,可以使用Pandas分析CSV文件并生成包含摘要信息的编辑器。我想从Flask视图返回结果作为响应。如何返回JSON响应?
我们尝试使用用户访问控制实现 RestAPI,其中相同的 URI 应为具有不同角色的两个用户返回不同的响应。比如说,对 URI 的响应(/resource/123) 如何根据角色隐藏每个属性。 隐藏用户不应访问的节点 问题:这会破坏响应结构。客户端可能会中断,因为预期的节点会被遗漏。 为该节点返回 null。 问题:这将破坏响应数据类型。因为“布尔”节点将具有空值。 返回该节点的默认值。 问题:这
问题内容: 使用该方法时,我正努力筛选返回的数据以准确获得所需的数据。我知道这很容易使用,可能还有其他jQuery AJAX方法,但是我需要专门使用。 例如,我知道这可行; 但是,如果我只想要id =“ foo”的div的内容怎么办? 理想情况下,我想要一个可以传递普通jQuery选择器的方法,该方法将用于选择标题,div或jQuery选择的任何其他元素。这样我可以将任何字符串传递到我自己的aja