Jalena Blog

  • 首页
  • 程序开发
    • Java
    • Spring
    • SpringBoot
    • SpringMvc
    • Python
    • Odoo
    • C#
    • SQL
    • Web
    • Linux
  • 移动设备
    • Android
    • Router
  • 杂七杂八
    • 我的废话
    • 音频
    • 视频
    • 常用软件
  • 关于
  1. 首页
  2. 软件开发
  3. Java
  4. 正文

Jackson反序列化 Y/N

2019-08-27

Json表示布尔的标准形式是true和false,但在项目中也有使用0/1,或者Y/N来表示的。这时候就需要我们将其转换为布尔类型。

package utils;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;

import java.io.IOException;

public class JsonCustomDeserializer extends JsonDeserializer<Boolean> {

	@Override
	public Boolean deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {

		JsonToken currentToken = jsonParser.getCurrentToken();

		if (currentToken.equals(JsonToken.VALUE_STRING)) {
			String text = jsonParser.getText();

			if ("X".equals(text)) {
				return Boolean.TRUE;
			} else if ("".equals(text)) {
				return Boolean.FALSE;
			}

			throw deserializationContext.weirdStringException(text, Boolean.class, "Only X or null values supported.");
		} else if (currentToken.equals(JsonToken.VALUE_NULL)) {
			return Boolean.FALSE;
		}

		return deserializationContext.reportBadDefinition(Boolean.class, "Can't parse boolean value: " + jsonParser.getText());
	}

}

使用

@TableField("LVORM")
@JsonProperty(value = "LVORM", access = JsonProperty.Access.WRITE_ONLY)
@JsonDeserialize(using = JsonCustomDeserializer.class)
private boolean lvorm;
标签: jackson java
最后更新:2019-08-27

Jalena

原创内容,转载请注明出处! 部分内容来自网络,请遵守法律适用!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

【腾讯云】云服务器特惠热卖中
文章目录
  • 使用
标签聚合
java Centos odoo 其他 生活 wordpress docker MySql
分类
  • Android / 4篇
  • C# / 10篇
  • Codec / 9篇
  • Conversion / 14篇
  • Editing / 16篇
  • Java / 47篇
  • Javascript / 3篇
  • Linux / 30篇
  • Odoo / 25篇
  • Python / 6篇
  • SQL / 30篇
  • Web / 3篇
  • Windows / 4篇
  • 我的日记 / 10篇
  • 杂七杂八 / 93篇
  • 软件开发 / 72篇
  • 非线性编辑 / 1篇

COPYRIGHT © 2026 Jalena Blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备17025376号