Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用Jackson对二维阵列进行反序列化

如何使用Jackson对二维阵列进行反序列化
EN

Stack Overflow用户
提问于 2013-09-17 08:48:54
回答 2查看 3.7K关注 0票数 1

我正在将一个2D数组JSON传递给一个spring控制器,但是得到了jackson错误。

代码语言:javascript
运行
AI代码解释
复制
    org.codehaus.jackson.map.JsonMappingException: 
    Can not deserialize instance of java.lang.String[] out of VALUE_NUMBER_INT token

我的javascript 2D数组如下所示。

代码语言:javascript
运行
AI代码解释
复制
[ ["John", "Doe", "worker", "fulltime"], 
  ["Adam", "Smith", "nonworker", "temp"],
  ["Jane", "Doe", "worker", "fulltime"] ]

被映射到2D数组的bean类,如下所示。

代码语言:javascript
运行
AI代码解释
复制
public class MyBean implements java.io.Serializable {

    private static final long serialVersionUID = -3948256457L;


    String[][] workInfo = null;


    public String[][] getWorkInfo() {
        return workInfo;
    }


    public void setWorkInfo(String[][] workInfo) {
        this.workInfo = workInfo;
    }           

}

在弹簧控制器中,我使用的是这样的东西。

代码语言:javascript
运行
AI代码解释
复制
    public ModelAndView addData(@RequestBody MyBean tempForm) throws Exception{

    ModelAndView model = new ModelAndView(new org.springframework.web.servlet.view.json.MappingJacksonJsonView());

    try{
        myService.addData(tempForm);

        model.addObject("mesage", "success");   
    }
    catch(Exception e)
    {           
        model.addObject("mesage", "error");
        log.error("error:"+e);
    }

    }

有人能建议我怎么解决这个问题吗。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-19 15:39:26

我通过检查我的2D数组的json对象来解决这个问题。它把它变成了一维数组和其他值的混合。在表单bean端,它期待的是一个2D数组,而jackson认为它是一维数组,但无法翻译。

org.springframework.web.servlet.view.json.MappingJacksonJsonView());模型=新ModelAndView (新ModelAndView)

进行转换,所以在大多数情况下,如果对象在双方都被发送到类似的对象,则不需要在表单bean类中添加jackson注释,例如,在我的示例中,我发送了一个javascript 2D数组,而在我的表单bean中,我定义了一个2D数组。还要确保在您的jsp或其他页面中有一个表单标记,等等。

票数 0
EN

Stack Overflow用户

发布于 2013-09-17 08:59:34

您确定您的数组是矩形大小的吗?

您应该能够通过一个列表来完成这个任务:

代码语言:javascript
运行
AI代码解释
复制
List<List<String>> workInfo;

然后,如果需要,则转换为String[][]

你可以:

代码语言:javascript
运行
AI代码解释
复制
ObjectMapper mapper = new ObjectMapper();
mapper.canSerialize(MyBean.class);

若要测试它能否正确序列化,请执行以下操作。

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

https://stackoverflow.com/questions/18855463

复制
相关文章
Java中使用Jackson,对JSON和对象进行转换
如果是单独加这个依赖包,使用上面的即可。如果是使用Springboot开发项目,那么这个依赖包是直接封装好的,不用单独加了,自己可以使用工具进行查看,看看是否有这个依赖包就行了,如下所示:
别先生
2020/03/19
2.9K0
如何使用XLMMacroDeobfuscator对XLM宏进行提取和反混淆处理
XLMMacroDeobfuscator一款针对XLM宏的安全工具,该工具可以帮助广大研究人员提取并解码经过混淆处理的XLM宏(Excel 4.0宏)。该工具可以使用一个内部XLM模拟器来解析宏文件,而且无需完整执行目标宏代码。
FB客服
2021/10/11
1.7K0
如何基于jackson动态序列化指定字段
把对象序列化为json字符串输出的库很多,本文我们来看如何基于jackson动态控制哪些属性需要进行序列化。
加多
2020/08/11
2K0
扩展序列化(jackson module)
Module 接口可以自定义实现一些三方类,无默认构造函数的对象,或自定义一些序列化实现。
乐事
2021/07/22
1.4K0
Jackson - LocalDateTime序列化探索
在Java开发中,涉及Json序列化及反序列化的情况有很多,最常见的就是SpringBoot/SpringCloud项目中HTTP/Rest接口的传参。其中经常会涉及到时间类型LocalDateTime的序列化和反序列化,这里经常会因为序列化失败,导致接外部接口调用或Feign调用失败。
夹胡碰
2021/06/17
3.8K0
Jackson - LocalDateTime序列化探索
SpringCloud - Jackson序列化LocalDateTime
SpringCloud开发中,Jackson作为默认的序列化器,在跨服务调用过程中,序列化LocalDateTime时常发生格式不一致问题,下面将对SpringCloud中Jackson的序列化方式及源码进行分析。
夹胡碰
2021/06/17
3K0
SpringCloud - Jackson序列化LocalDateTime
使用jackson进行json数据格式转换
private static final JsonFactory factory = new JsonFactory(); StringWriter jsonOut = new StringWriter(1000); JsonGenerator generator = factory.createGenerator(jsonOut); generator .writeStartObject(); generator.writeStringField("article","交易提醒"); generato
用户3003813
2018/09/06
1.5K0
如何使用cdn对网站进行加速
今天抽空整理下网站,时间太久,历史文件太多,删除了一些无用的垃圾,更换了服务器,调整了cdn,鼓捣2天,更换好目前感觉良好。
霍常亮
2020/07/19
17K0
如何使用cdn对网站进行加速
利用单细胞数据对bulk进行反卷积
buk-RNAseq和sc-RNAseq联合分析在许多文章中已经屡见不鲜了,这周介绍两种利用单细胞数据对bulk进行反卷积方法的基本实现
生信菜鸟团
2023/10/25
5.8K0
利用单细胞数据对bulk进行反卷积
jackson序列化时区问题
排查发现是Jackson指定时区问题,原先用的GMT+8,但数据库是Asia/Shanghai
阿超
2023/02/20
1.1K0
jackson序列化时区问题
使用java对与具有共享对象的数据进行序列化
import java.io.Serializable; import java.time.LocalDate;
用户2436820
2018/09/05
1.6K0
使用java对与具有共享对象的数据进行序列化
如何使用Nginx对Artifactory进行http应用
在我们日常使用高可用集群时,都会使用到负载均衡工具对多个节点的负载进行转发。这里就不得不提到我们常用的一个负载均衡工具Nginx,Nginx官方提供的免费版本功能相对简单,大部分情况下我们都是用其进行负载均衡,对于应用的状态主要是依赖于其他的监控工具。如果对于小型的团队来说,部署专门的监控工具还需要资源,使用Nginx对应用进行探活监控可以节约这部分成本。
JFrog杰蛙科技
2021/06/18
1.4K0
如何使用Nginx对Artifactory进行http应用
CA2321:请勿使用 SimpleTypeResolver 对 JavaScriptSerializer 进行反序列化
使用 System.Web.Script.Serialization.SimpleTypeResolver 初始化后,调用或引用了 System.Web.Script.Serialization.JavaScriptSerializer 反序列化方法。
用户4268038
2022/02/20
1.3K0
Jackson 之 LocalDateTime 序列化与反序列化
在 Java 8 中对 LocalDateTime、LocalDate 的序列化和反序列化有很多种操作
玖柒的小窝
2021/10/31
5K0
[Office] 如何对Excel二维表中的所有数值进行排序
在Excel中,如果想对一个一维的数组(只有一行或者一列的数据)进行排序的话(寻找最大值和最小值),可以直接使用Excel自带的数据筛选功能进行排序,但是如果要在二维数组(存在很多行和很多列)的数据表中排序的话,就要巧用函数来实现了。
轻舞飞扬SR
2021/02/24
10.4K0
[Office] 如何对Excel二维表中的所有数值进行排序
Jackson 反序列化原理浅析
在练习使用Axios传post时发现默认使用的是json传参,而servlet提供的getParameter(String s)方法无法解析这种语法,因此了解到Jackson,对其的序列化与反序列化原理很感兴趣,所以浅析一下其原理。
MashiroT
2022/10/28
1.1K0
Jackson 反序列化原理浅析
Jackson 反序列化 Map 集合
仅仅使用 objectMapper.readValue(xxxxx, Map.class) 时,如果原始集合使用了泛型,idea会给出警告 未检查的赋值: 'java.util.Map' 赋值给 'java.util.Map<java.lang.String,java.lang.String>'
MashiroT
2022/10/28
8830
如何通过Jackson注解@JsonTypeInfo解决多态反序列化问题?
Jackson是Spring Boot(SpringBoot)默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库。有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制。
码农架构
2021/06/13
5.6K0
如何通过Jackson注解@JsonTypeInfo解决多态反序列化问题?
设置Springboot返回jackson数据序列化
LocalDateTime格式化 使用下面的配置相当于全局配置就不需要给字段添加@JsonFormat(pattern = DateUt.YYYY_MM_DD_HH_MM_SS) 如果个别字段需要不同的配置可使用@JsonFormat(pattern = DateUt.YYYY_MM_DD),@JsonFormat会优先使用,反序列化亦可使用@JsonFormat注解
FHAdmin
2021/08/25
8810
点击加载更多

相似问题

Jackson:使用默认(反)序列化程序

11

反卷积二维阵列

14

如何使用Jackson对Enum进行反序列化?

297

(反)用Jackson序列化Spring

11

使用Jackson反/序列化枚举器类型

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文