Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >尽管使用了@JsonDeserializer注释,但未调用自定义反序列化器。

尽管使用了@JsonDeserializer注释,但未调用自定义反序列化器。
EN

Stack Overflow用户
提问于 2014-01-06 09:20:31
回答 1查看 2.4K关注 0票数 0

我在用杰克森和泽西在爪哇。使用web,我试图通过一个JSON文件发送一个POJO,该文件还包括一个Joda DateTime对象。因为这不是一个本机对象,所以我为它构建了一个自定义序列化程序和反序列化器。但是,由于反序列化器似乎不起作用,我发送了一个POST请求,但它没有在服务器上接收。当然,当我将日期字段从JSON移出时,它工作得很好。

正在发送的JSON:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"loc": [-0.1300836,51.5124623],
 "visibility":"Public",
 "date": "06 January 2014 09:51"}

POST方法接收它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@POST
@Timed
public String createTadu(@Valid Tadu tadu) throws JsonParseException, JsonMappingException, IOException {
    Tadu createdTadu = new Tadu(tadu);
    taduCollection.insert(createdTadu);
    return String.format("{\"status\":\"success\", \"id\":\"%s\"}", tadu.getId());
}

POJO DateTime声明:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private DateTime date;
@JsonSerialize(using = CustomDateSerializer.class)
public DateTime getDate() {
    return date;
}
@JsonDeserialize(using = CustomDateDeserializer.class)  
public void setDate(DateTime date) {
    this.date = date;
}

以及自定义序列化程序/反序列化程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class CustomDateSerializer extends JsonSerializer<DateTime> {

    private static DateTimeFormatter formatter = DateTimeFormat
        .forPattern("dd MMMM yyyy HH:mm"); // 31 December 2013 16:22

    @Override
    public void serialize(DateTime value, JsonGenerator gen,
        SerializerProvider arg2) throws IOException,
        JsonProcessingException {

        gen.writeString(formatter.print(value));
    }
}

public class CustomDateDeserializer extends JsonDeserializer<DateTime>
{
    @Override
    public DateTime deserialize(JsonParser jsonparser,
        DeserializationContext deserializationcontext) throws IOException, JsonProcessingException {

        DateTimeFormatter formatter = DateTimeFormat.forPattern("dd MMMM yyyy HH:mm");
        String date = jsonparser.getText();
        return formatter.parseDateTime(date);

    }
}

在我看来,POST方法(createTadu)没有被调用是因为一个名为"date“的字符串是通过JSON发送的,但是它不是一个有效的Tadu对象,因为它不是一个名为"date”的DateTime。我希望自定义反序列化器注释能够修复这个问题。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-08 08:41:53

我不明白为什么这个方法行不通。最后我下载了杰克森-数据类型-joda模块。

这个模块的唯一问题是它还不允许自定义的日期时间格式化程序,并且只在ISO 8601中运行。

另一个问题是,在数据库中,日期时间被转换为一个划时代的UTC时间,最后添加了4个零(为什么是零..)。因此,当将其带回客户端时,需要完成从划时代到可显示日期的转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20955527

复制
相关文章
js获取iframe中的内容(iframe内嵌页面)
在父页面中定义函数,再到子页面中调用。 父页面parent.html function getFrameId(f){ var frames = document.getElementsByTagName(“iframe”); //获取父页面所有iframe for(i=0;i
全栈程序员站长
2022/08/01
24.7K0
js获取iframe中的内容(iframe内嵌页面)
iframe跨域应用 - 使用iframe提交表单数据
之前我们提到了iframe跨域,今天我们在原有的基础之上进行“实例”的讲解。通过iframe跨域实现表单数据的提交。如果想了解iframe跨域,可以发送“iframe跨域”到“HTML5学堂”公众号。 为何提交数据还要跨域? 在使用iframe跨域之前,可能你的脑海中就出现了这样一个问题:为何提交表单数据还需要跨域呢? 首先我们要知道,网站的数据是存放在服务器上的,而当一个网站很大型,拥有很多的数据时,通常会进行分类,然后将不同类的内容放置在不同的子域名中。 表单数据的提交模式 今天会使用到MD5的知识,因
HTML5学堂
2018/03/12
5.3K0
adminLte解决iframe高度问题
adminLte默认是全局刷新,也就是不存在frame页面,经过修改,可以很容易实现右边内容框用frame实现页面刷新,这样就不需要整个页面全局刷新,点击相应菜单时,只会刷新frame窗口,但是有一个问题就是frame默认高度只有一丁点,百度之后用了自适应也会有各种问题,比如高度只能拉伸不会缩短,在解决的道路上真的是没有一个完美的解决方案,经过自己研究,发现一个非常简单的方法,那就是用js获取window的innerHeight,代码实现window.innerHeight,然后出去顶部的状态栏,以及空白部分,经过测试,窗口高度减去90是最合适的,也可以根据你自己的情况加减,最后调至一个最完美高度,发现任何分辨率都不会有问题!
全栈程序员站长
2022/09/18
9410
vue项目iframe的传值问题
  所以。我把插件的使用封装了一个html页面。vue项目则利用iframe的方式引入。
Dawnzhang
2019/11/21
1.8K0
pyppeteer对于iframe中的滑块
import asyncio import time import numpy, random import pyppeteer async def main(): ip = "xxxxxx" #代理ip port = "xxxx" #代理端口 browser = await pyppeteer.launch({'headless': False, 'args': [
小小咸鱼YwY
2020/12/21
2.8K0
【HTML】Iframe中的onload事件
当iframe.src重新指定一个url时会重新执行iframe的onload事件 <iframe id="indexFrame" name="index" width="800" onload='iFrameHeight("indexFrame");'                 frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> html生成时,会执行iframe中的onload事件 当iframe.sr
悟空聊架构
2018/05/18
3.4K0
DNS在远程调用执行中的应用
纯属蹭log4j2热度文,和安全没有直接的关系,本文只谈DNS以及日志应用; 通过dnslog.cn的截图,分析dnslog.cn的原理,基于此,介绍了可以获取更多信息的ceye的功能;在应用场景上,我们通过该原理提供了用户出口IP同本地DNS递归出口IP的对应关系,延伸出了排障场景和数据分析场景。
hermanzeng
2021/12/14
6K3
DNS在远程调用执行中的应用
深入剖析iframe跨域问题
HTML5学堂:本文当中我们介绍了跨域的基本知识,讲解到了跨域的相关种类,并讲解了解决跨域中的一种方法——如何使用iframe跨域。讲解了iframe跨域的基本原理与流程,并配以实战~ 利利的独白:跨域,是我们的课程中必不可少的一部分,但是我们一直都是在讲解JSONP的跨域方式,虽然也提到了iframe的跨域方式,但是由于时间因素,并没有办法放置到课程中。 本文仅仅讲明了iframe的跨域问题,想了解更多关于iframe标签的基本知识,直接发送 “iframe标签” 到 “HTML5学堂” 的微信。 什么是
HTML5学堂
2018/03/12
14.6K0
深入剖析iframe跨域问题
layui打开iframe窗口不刷新的问题
这个问题可能是我工作以来,最死磕不算bug的一个了,晚上熬夜到三点钟,终于找到了解决的办法。
王小婷
2019/04/29
4K0
layui打开iframe窗口不刷新的问题
网页嵌入Iframe中
<iframe id="reportFrame" width="900" height="400" src="https://www.baidu.com/"></iframe> 如果把第三方网页嵌到iframe中,下面以百度为例 Refused to display 'https://www.baidu.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'. 开发时通过配置代理 <iframe id="reportFra
tianyawhl
2022/08/07
1.8K0
深度学习在环境远程遥感中的应用
本文是关于深度学习在环境远程遥感方面的应用研究进展及面临的挑战。简要介绍由武汉大学张良培教授团队的这篇综述文章。
bugsuse
2020/04/21
1K0
深度学习在环境远程遥感中的应用
JavaScript 处理Iframe自适应高度的问题
 用到的就是iframe嵌套的页面加载完毕的时候,运用onload事件来获取嵌套在iframe中网页的高度,然后赋值给Iframe的高度即可。
aehyok
2018/09/11
1.6K0
iframe编程的一些问题
前几天做一个用iframe显示曲线图的demo,发现对iframe的contentDocument绑定 onclick事件都无效,而在页面中对iframe.contentDocument的onclick 属性为undefined;而当iframe去掉src属性后,在对其绑定onclick事件,该事件生效; 对比之下才发现原来当对iframe.contentDocument绑定事件时,iframe还没有加载 完毕,此时对于contentDocument虽然可以绑定该事件处理函数,但是却无法执行, 因为此时co
欲休
2018/03/15
9610
【JS应用】Iframe 解决跨域
跨域的东西, 简直不要接触太多,网上相关内容一抓一大把,但是突然学习到一个关于前端解决跨域的方式
神仙朱
2019/11/07
15.5K0
【JS应用】Iframe 解决跨域
如何在 WordPress 中嵌入 iFrame
Iframe 是一种将网页嵌入到另一个页面的内容中的方法。这是通过使用 HTML 元素、外部网站的 URL 以及窗口在您的网站上的外观参数来实现的。
海拥
2022/12/11
2.4K0
如何在 WordPress 中嵌入 iFrame
jQuery控制iframe中对象的方法
jQuery中的$()方法很容易获取到DOM中的元素。但是这个方法不适用于引用iframe中的元素。 如下面的html a.htm
EltonZheng
2021/01/26
2.1K0
IE中iframe跨域访问
本文主要讲述了IE浏览器中iframe跨域访问的问题以及如何解决。主要包括三个方面:1.什么是跨域,以及跨域引发的问题;2.如何解决跨域问题,分别从浏览器和服务器两个方面给出方案;3.浏览器和服务器在解决跨域问题的过程中需要注意的一些细节。
高爽
2017/12/28
4.3K0
IE中iframe跨域访问
JavaScript中给 iframe 中的元素添加点击事件
最近在开发一个浏览器插件,需要抓取掌中云平台的数据,由于该平台的页面结构是采用iframe嵌套的方式加载的, 所以在添加事件的时候遇到了一点小麻烦,现特此将解决方法记录如下,以供大家复制粘贴。
越陌度阡
2022/11/27
3.6K0
点击加载更多

相似问题

.Net城域应用中的MarkUpExtension

10

未触发BackgroundTask的城域应用程序问题

12

城域WinRT应用中的AesManaged解密

20

WindowsBase组件结构在城域应用中的应用

13

分组CollectionViewSource在windows 8城域应用中的应用

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文