小编new*_*nne的帖子

在spring mvc @ResponseBody中返回文字JSON字符串

我将对象作为JSON字符串存储在我的数据库中.我想制作一个暴露这些字符串的REST服务.然而,当我编写我的方法时,我回来的字符串会引用它们的引号.例如,我已经包含了一个返回String的方法,

@RequestMapping(value = "test", method = RequestMethod.GET)
public @ResponseBody
String getTest() {
    return "{\"a\":1, \"b\":\"foo\"}";
}
Run Code Online (Sandbox Code Playgroud)

但是当我在浏览器中调用此方法时,我得到一个"{\"a \":1,\"b \":\"foo \"}"当我真正想要发生的是{"a":1 ,"b":"foo"}.我认为"String"作为返回类型可能是问题所在,但我还能做些什么呢?包装器类做同样的事情:

{
  "value" : "{\"a\":1, \"b\":\"foo\"}"
}
Run Code Online (Sandbox Code Playgroud)

我可以序列化然后返回对象,但这看起来有点荒谬.这可能是我的配置文件的相关部分:

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    super.configureMessageConverters(converters);
    converters.add(mappingJacksonHttpMessageConverter());
}

@Bean
MappingJacksonHttpMessageConverter mappingJacksonHttpMessageConverter() {
    MappingJacksonHttpMessageConverter mappingJacksonHttpMessageConverter = new MappingJacksonHttpMessageConverter();
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
    mappingJacksonHttpMessageConverter.setObjectMapper(objectMapper);
    mappingJacksonHttpMessageConverter.setPrettyPrint(true);
    return mappingJacksonHttpMessageConverter;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑:如下所示,似乎字符串是双重编码.在我的配置中注释掉这两个类可以解决这个问题.但是,我仍然有其他地方我想要返回对象,并希望保持那些运行通过我知道在哪里配置的常见序列化bean.所以我认为我的选择是:a)自己做所有的序列化.所有方法都返回Strings,那些已经是JSON的方法返回自己,而那些作为对象的方法都返回JSONUtil.toJson(object).我不喜欢这种方法,但我知道它会起作用.b)使用类似于以下内容的包装类:

public static class Wrapper {

    @JsonRawValue
    private final String value;
}
Run Code Online (Sandbox Code Playgroud)

这导致前面的尴尬"价值"虽然没有实际意义.

基本上我想要的是@JsonRawValue,但让它在RequestMapping方法而不是属性上工作.思考?意见?其他建议?

spring-mvc jackson

29
推荐指数
5
解决办法
5万
查看次数

杰克逊使用JsonSerialize.Inclusion.NON_NULL除了一个类

我通常使用objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL),因为我从不希望序列化我的类的空值.除了现在我应该写出一个特定的字段,即使它是null.我可以在这一个字段上添加一个快速注释来覆盖该字段的Inclusion.NON_NULL属性吗?有什么好办法实现这个目标?

jackson

21
推荐指数
2
解决办法
3万
查看次数

替换包装器手册中的模板

我正在尝试为厨师石墨回购写一个包装食谱

在配方carbon.rb中,出现以下行:

template "#{node['graphite']['base_dir']}/conf/storage-schemas.conf" do
  owner node['apache']['user']
  group node['apache']['group']
end
Run Code Online (Sandbox Code Playgroud)

在templates/default/storage-schemas.conf中有一个不受我喜欢的storage-schemas.conf文件.我可以内联编辑文件并实现我想要的,但如果我希望能够在不发生合并冲突的情况下保持我的仓库更新,它似乎不是一个好厨师的做法.所以我想知道我是否可以用包装食谱来解决这个问题.

我的第一个虽然是这样的

include_recipe "graphite"
template "#{node['graphite']['base_dir']}/conf/storage-schemas.conf" do
  owner node['apache']['user']
  group node['apache']['group']
end
Run Code Online (Sandbox Code Playgroud)

我将在基本配方完成后重新运行命令,并将我想要的文件放在wrappercookbook/templates/storage-schemas.conf.erb中.这是一种常见做法吗?它感觉不太干,但我想不出更干净的方式.

chef-infra

21
推荐指数
2
解决办法
1万
查看次数

一个真正的,强大的,git svn外部解决方案?

当你签出一个包含svn externals的git存储库时,它会忽略它们.人们所做的是创建许多脚本,其中许多脚本在这个问题中提到我如何使用git-svn保持svn:external是最新的?.问题是虽然许多脚本都浮在互联网上,但我还没有找到一个实际上很强大的脚本.通过健壮,我的意思是:

  1. 它可以处理与特定版本挂钩的svn外部
  2. 它可以处理指向文件而不是目录的svn外部

因为这些是我的存储库的2个问题,似乎会​​导致大多数脚本失效.我没兴趣使用smartgit.

有这样的剧本吗?有没有人有一个"几乎存在"的脚本可以很快适应这两件事?

git git-svn svn-externals

17
推荐指数
1
解决办法
1万
查看次数

Java 8并行流+ anyMatch - 一旦发现匹配,线程是否会被中断?

如果我在java 8中有并行流,并且我使用anyMatch终止,并且我的集合有一个与谓词匹配的元素,我试图弄清楚当一个线程处理这个元素时会发生什么.

我知道anyMatch是短路的,因此我不希望在处理匹配元素后处理更多元素.我的困惑是关于其他线程发生了什么,可能是在处理元素的中间.我可以想到3个看似合理的场景:a)他们被打断了吗?b)他们是否继续处理他们正在处理的元素,然后,一旦所有线程都无所事事,我得到我的结果?c)我是否得到了我的结果,但是处理其他元素的线程继续处理这些元素(但是一旦完成就不再采用其他元素)?

我有一个长期运行的谓词,一旦我知道一个元素匹配就很快终止它.我担心一点,因为我在文档中找不到它可能是依赖于实现的东西的信息,这也是很好的.

谢谢

java-8

14
推荐指数
1
解决办法
2301
查看次数

具有给定集合的集合集合中的最大集合交集的算法/数据结构

我有几百万套C的大集合.我的集合的元素来自大约2000个可能元素的宇宙.我需要知道,对于给定的集合,s,C中的集合与s的交集最大?(或者k在C中设置k个最大的交叉点).我将依次针对不同的s进行许多这些查询.

我知道这样做的显而易见的方法是循环遍历C中的每个集合并计算交集并取最大值.是否有任何智能数据结构/编程技巧可以加快我的搜索速度?如果我能比O(C)更快地做到这一点会很棒.

编辑:大致的答案也没关系

algorithm intersection set set-intersection data-structures

13
推荐指数
1
解决办法
765
查看次数

使用Firebase Auth和Django

我想为我的django webapp使用firebase身份验证.为了达到这个目的,我想我需要编写一个自定义的auth后端 - 是吗?我没有看到任何已经执行此操作的库 - django-allauth看起来非常接近,但我对firebase提供的电话号码验证感兴趣.

我也对User模型和request.user或user.is_authenticated等函数会发生什么感到困惑.现在我使用身份验证和登录功能 - django如何知道用户是通过firebase登录的?我还会为每个用户创建一个用户模型吗?

谢谢

django firebase firebase-authentication

7
推荐指数
1
解决办法
5890
查看次数

Highcharts 图例项目悬停事件?

我有一个图表,我希望某些系列在图例中不可点击,但其他系列可点击。这很简单,因为有一个 legendItemClick 事件,我无法根据系列做任何事情。一个例子在这里:http : //jsfiddle.net/9PqyG/3/

我的问题是鼠标指针仍然从箭头变为可点击链接手指针,我不希望任何人认为这是可点击的。我知道我可以更改 itemHoverStyle 参数以使箭头出现在所有图例项中,但这会为每个系列更改它。我可以只在特定系列中实现这一点吗?

highcharts

5
推荐指数
1
解决办法
3495
查看次数

Java - 我可以反思地发现我是否从catch块中的函数调用了partifuclar异常?

首先,在我被大吼之前,我想要明确一些事情:我没有计划编写任何能够使用这种控制流程的代码; 它显然很可怕.忘记一个用例,这是一个关于它是否可能的问题:

我想知道是否有可能知道调用堆栈的某个位置,是否在catch块中为特定异常调用了一个函数.

假设我有一个功能:

foo() {
try {
    something
}
catch (SuperException s) {
    bar()
}
Run Code Online (Sandbox Code Playgroud)

因此,如果没有对bar的方法签名的控制,并且给定的bar也被许多其他函数调用,那么如果在catch块中调用超级函数,那么bar的行为会不同吗?(并且不,被foo调用不是一个充分条件,它是重要的超级例外)

java reflection

3
推荐指数
1
解决办法
123
查看次数