Jersey Json Deserialize - Boolean , Enum
来源:互联网 发布:多力甾醇玉米油知乎 编辑:程序博客网 时间:2024/05/23 17:42
新手第一次接触 通过Jersey搭建RESTFul服务, 在前端传过来的Json转化为POJO的时候遇到了 一些问题, 主要是 Boolean, Enum 的转化。
public class TestDO { private boolean isStore; private ExecMode mode;}
enum Execmode { HIVE , SHARK}
出错的POJO定义如上,传过来的Json为
{ "isStore":true, "mode":"HIVE"}
这样总是报错,isStore not marked as ignorable</span>
去掉 isStore, mode 会报错 value not one of declared Enum instance names 等等;
由于第一次接触,不是很熟悉,所以通过各种 stackoverflow 找到了一些原因:
1. boolean类型 deserialize 的时候需要指定它的类型,即加上注释:@JsonDeserialize( as = Boolean.class ), 那声明的时候也只能用 Boolean.
2. enum犯错更低级了,因为HIVE,SHARK的值是 0,1 ,所以Json里对应字段的值应该是 0,1, 而不是HIVE,SHARK字符串, 如果要传字符串的形式(能够很好理解含义,一般这种方式吧),需要对enum定义做出修改如下:
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">enum ExecMode {</span>
HIVE("HIVE"), SHARK("SHARK"); private final String value; @JsonCreator private ExecMode(final String description) { this.value = description; } @JsonValue final String value() { return this.value; }}
将HIVE,SHARK的值指定为字符串,然后在构造函数,value函数分别加上 @JsonCreator, @JsonValue的注释
通过上述的修改, 前段传输 :
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">{</span>
"isStore":true, "mode":"HIVE"}
</pre><pre name="code" class="html">
</pre><pre name="code" class="html"><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">就不会有问题了。</span>
0 0
- Jersey Json Deserialize - Boolean , Enum
- jersey-uri-json
- 怎样使用Gson 解析 (deserialize) json字符串
- JSON Example With Jersey + Jackson
- JSON example with Jersey + Jackson
- Jersey 配合 Jackson 输出 json
- Jersey对JSON的支持
- Enum转Json
- Jersey框架二:Jersey对JSON的支持
- Jersey框架二:Jersey对JSON的支持
- Jersey框架二:Jersey对JSON的支持
- MySQL 四种特殊数据类型 ENUM、SET、BOOL/BOOLEAN、TINYINT
- Jersey生成Json响应的配置
- jersey--服务端接收客户端json数据
- jersey - json(jsonp 跨域)格式交互
- Jersey框架put请求发送JSON数据
- Jersey接收Json报400(Bad Request)
- Jersey Restful WebService 接收 JSON 数组
- 系统重构(1)
- java中关键字volatile的作用
- tinyxml2简单使用
- BufferedReader和BufferedWriter
- linux free命令详解
- Jersey Json Deserialize - Boolean , Enum
- Using the Twisted Web Client
- Cocos2d-js官方完整项目教程翻译:十、添加音频效果的跑酷游戏
- 北京SEO培训_SEO免费公开课培训
- mac osx系统g++编译c++
- tomcat dbcp 基于jndi配置时出现java.sql.SQLException: Already closed
- linux awk命令详解
- Android开源界面库--ResideMenu用法
- 如何导入SlidingMenu——master