小编Pau*_*aul的帖子

杰克逊databind enum不区分大小写

如何反序列化包含不区分大小写的枚举值的JSON字符串?(使用Jackson Databind)

JSON字符串:

[{"url": "foo", "type": "json"}]
Run Code Online (Sandbox Code Playgroud)

和我的Java POJO:

public static class Endpoint {

    public enum DataType {
        JSON, HTML
    }

    public String url;
    public DataType type;

    public Endpoint() {

    }

}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,反序列化JSON "type":"json"将失败,因为它"type":"JSON"可以工作.但我想"json"以命名惯例为理由.

序列化POJO也会导致大写 "type":"JSON"

我想过使用@JsonCreator和@JsonGetter:

    @JsonCreator
    private Endpoint(@JsonProperty("name") String url, @JsonProperty("type") String type) {
        this.url = url;
        this.type = DataType.valueOf(type.toUpperCase());
    }

    //....
    @JsonGetter
    private String getType() {
        return type.name().toLowerCase();
    }
Run Code Online (Sandbox Code Playgroud)

它奏效了.但我想知道是否有更好的解决方案,因为这看起来像是对我的黑客攻击.

我也可以编写一个自定义反序列化器,但是我有很多不同的POJO使用枚举,而且很难维护.

任何人都可以建议一个更好的方法来使用适当的命名约定序列化和反序列化枚举?

我不希望我在java中的枚举是小写的!

这是我使用的一些测试代码:

    String data = "[{\"url\":\"foo\", \"type\":\"json\"}]";
    Endpoint[] …
Run Code Online (Sandbox Code Playgroud)

java enums serialization json jackson

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

Java - 如何使用值创建String数组?

我知道如何创建一个空数组,但是如何String从一开始就使用值创建一个数组呢?

java arrays string

58
推荐指数
4
解决办法
22万
查看次数

57
推荐指数
2
解决办法
6万
查看次数

BindingResult和bean名称的普通目标对象都不能作为请求attr使用


嗨专家,我有这个控制器代码,抛出上述错误.它工作正常,直到昨天,我不知道同事对此代码做了什么,今天我看到错误:

BindingResult和bean名称'sideForm'的普通目标对象都不可用作请求属性

你能告诉我在哪里寻找这种错误吗?我在POST或GET方法声明中犯了什么错误或者返回错误了吗?

非常感谢您的帮助:)

package com.att.analytics.ui;

import java.util.Arrays;
import java.util.Collection;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.si.myworld.business.AdminChart;
import com.si.myworld.business.Chart;
import com.si.myworld.dao.AdminChartSummaryData;
import com.si.myworld.dao.BulletinData;
import com.si.myworld.dao.ChartData;

@RequestMapping("/index.html")
@Controller
public class IndexController {

private static final Logger log = Logger.getLogger(IndexController.class);

/**
 * Called to load the page initially (GET request)
 * 
 * @param model
 * @return
 */
@RequestMapping(method = RequestMethod.GET)
public String getCharts(ModelMap model) {

    Chart chart = new Chart();
    chart.setTimeline("Monthly"); …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc

33
推荐指数
3
解决办法
16万
查看次数

在Spring 3中是否可以动态设置@ResponseStatus的原因?

我有一个自定义的异常类注释返回给定HttpStatus:

@ResponseStatus(value=HttpStatus.BAD_REQUEST, reason="Invalid parameter")
public class BadRequestException extends RuntimeException
{
  public BadRequestException(String msg)
  {
    super(msg);
  }
}
Run Code Online (Sandbox Code Playgroud)

当我BadRequestException从我的控制器中抛出一个但是原因总是"无效的参数"当然有效.有没有办法在这个类中设置返回的原因?我想传递一个字符串作为原因.

谢谢!

java spring spring-mvc

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

如何在 VSCode 中永久隐藏调试控制台?

我一直在寻找解决方案,但找不到解决方案,最近我将 VSCode 中的资源管理器从左侧切换到右侧,效果更好,我现在遇到的问题是,当我打开终端时,我会看到一个调试控制台左边 - 见下图。

有没有办法可以禁用/隐藏终端的调试控制台部分?当我启动新控制台时,它总是最大化,并且无法将其设置为最小化。

在此输入图像描述

在此输入图像描述

visual-studio-code

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

覆盖Select2的最小长度字符串

Select2 Jquery插件

我很难在jquery Select2中覆盖默认消息的最小长度输入.

默认情况下,插件提供以下消息.

默认文字

Please enter 1 more characters
Run Code Online (Sandbox Code Playgroud)

我的要求是显示以下文字

必填文字

Enter 1 Character
Run Code Online (Sandbox Code Playgroud)

请分享解决方案.谢谢.

jquery-select2

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

在Java中,如何组合两个JSON对象数组?

我有几个字符串,每个字符串包含一个对象数组的JSON表示.这是代码中的一个例子来说明,虽然这不是我的实际代码(传入JSON字符串):

String s1 = "[{name: "Bob", car: "Ford"},{name: "Mary", car: "Fiat"}]";
String s2 = "[{name: "Mack", car: "VW"},{name: "Steve", car: "Mercedes Benz"}]";
Run Code Online (Sandbox Code Playgroud)

我需要将这两个JSON数组合并为一个大型JSON数组.我可以将其视为一个字符串操作问题,并用逗号替换内端方括号,但这不是特别健壮(尽管我保证获得有效的JSON).

我宁愿将这两个字符串视为JSON数组,只是以某种方式将它们组合在一起.这是一个很棒的计划,除了我不知道"某种程度"的部分.

有没有人知道Java中的解决方案不需要构建JSON对象的Java Object表示?

谢谢!

java json

15
推荐指数
4
解决办法
3万
查看次数

如何从堆转储中了解Java对象是否处于tenure或eden空间中

我有一个Hotspot JVM堆转储,我试图找出一个对象是否在权属空间,伊甸园空间或幸存者空间中存在,但我不能.

感谢有人可以帮助我.

java garbage-collection jvm-hotspot heap-dump

11
推荐指数
1
解决办法
1216
查看次数

如何在Netbeans中运行宏

这是一个愚蠢的问题,但花了最后20分钟左右浏览谷歌结果和Netbeans的菜单.在编辑下有一个开始和停止宏录制,但保存宏后,我似乎无法找到如何运行它.

没有为它指定键盘快捷键,假设我可以选择从菜单中的某个位置运行命名宏,但除了开始/停止录制之外我找不到任何能够列出宏的内容,以便我可以运行它.

macros netbeans

11
推荐指数
3
解决办法
7227
查看次数