java 不能反序列化_不能将“Java.Lang.Studio”实例反序列化到StaskObl对象令牌中
我收到下面的错误消息,有人能帮助或建议如何最好地调试它吗?
无法反序列化的实例
java.lang.String
超出起始值的对象
[来源:(pushbackinputstream)处的令牌;行:1,列:37610]
(通过参考链:
CopyToList[[产品] ] -gt;java. U.L.AyayList[ 23 ] -&G.M.Mult.产品[“价格”] -& com;COM.价格(“现在”))
我正在尝试从RESTAPI调用反序列化产品对象。在我添加代码来反序列化price子类之前,代码一直工作得很好。如下所示:
"price": {
"was": "",
"then1": "",
"then2": "",
"now": "59.00",
"uom": "",
"currency": "GBP"
},
我的价格POJO如下:
public class Price {
@JsonProperty("was")
String was;
@JsonProperty("then1")
String then1;
@JsonProperty("then2")
String then2;
@JsonProperty("now")
String now;
@JsonProperty("uom")
String uom;
@JsonProperty("currency")
String currency;
public Price() {
//blank constructor for JSON
}
@Override
public String toString() {
return "Price{" +
"was='" + was + '\'' +
", then1='" + then1 + '\'' +
", then2='" + then2 + '\'' +
", now='" + now + '\'' +
", uom='" + uom + '\'' +
", currency='" + currency + '\'' +
'}';
}
}
我编写了一个JUnit测试来尝试模拟错误,但它在我的测试中有效,
@Test
public void shouldConvertJsonProductListIntoPrice() {
ObjectMapper objectMapper = new ObjectMapper();
String content3 = "{\"products\": [{\"productId\": \"3525085\",\"title\": \"hush Tasha Vest Dress\", " +
"\"price\": {\"was\": \"\",\"then1\": \"\",\"then2\": \"\",\"now\": \"59.00\",\"uom\": \"\",\"currency\": \"GBP\"}, " +
"\"colorSwatches\": [{\"basicColor\": \"Red\",\"skuId\": \"237494589\"},{\"basicColor\": \"Blue\",\"skuId\": \"237494562\"}] " +
"}]}";
JavaType valueType = objectMapper.constructType(ProductList.class);
ProductList readValue;
try {
readValue = objectMapper.readValue(content3, valueType);
assertEquals("3525085", readValue.getProductList().get(0).productId);
assertEquals("hush Tasha Vest Dress", readValue.getProductList().get(0).title);
assertEquals("", readValue.getProductList().get(0).price.then1);
assertEquals("59.00", readValue.getProductList().get(0).price.now);
assertEquals("Blue", readValue.getProductList().get(0).colorSwatches[1].basicColor);
assertEquals("237494562", readValue.getProductList().get(0).colorSwatches[1].skuId);
} catch (Exception e) {
e.printStackTrace();
fail();
}
}
如果我对“now”字段进行注释,那么我的restapi调用工作得很好,我看不到异常。
所以看起来“now”字段有问题,我注意到它试图将“59.00”转换为字符串。这可能是fasterXML转换器的问题吗?我需要帮忙吗?
产品类如下(尽管这是我从API调用中接收到的字段列表减少了很多)。
public class Product {
@JsonProperty("productId")
String productId;
@JsonProperty("title")
String title;
@JsonProperty("colorSwatches")
ColorSwatch [] colorSwatches;
@JsonProperty("price")
Price price;
public Product(){
// blank required for Jackson
}
public Product(String productId, String title, ColorSwatch[] colorSwatches, Price price){
this.productId = productId;
this.title = title;
this.colorSwatches = colorSwatches;
this.price = price;
}
java 不能反序列化_不能将“Java.Lang.Studio”实例反序列化到StaskObl对象令牌中相关推荐
- java设计模式并发_[高并发Java 七] 并发设计模式
[高并发Java 七] 并发设计模式 [高并发Java 七] 并发设计模式 为什么80%的码农都做不了架构师?>>> 在软件工程中,设计模式(design pattern)是对软件设 ...
- Java cache类型_为什么有些Java 类方法中要cache类变量
比如以下一段java代码: private void performTraversals() { // cache mView since it is used so much below... fi ...
- java 调用弗雷_深入理解java虚拟机(十一) 方法调用-解析调用与分派调用
[方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程.在程序运行时,进行方法调用是最普 方法调用过程是指确定被调用方法的 ...
- 马士兵 java 学习笔记_马士兵java教程笔记1
---恢复内容开始--- 前记 虽然已经是个研究生了,但是会的东西还是特别的少 甚至连java都不能说是很会 所以准备从现在开始能好好的学习java 变成java master 标识符 标识符是由字母 ...
- java虚拟机现状_深入理解java虚拟机的故障处理工具
前言 本文主要给大家介绍的是java虚拟机的故障处理工具,文中提到这些工具包括: 名称 主要作用 jps JVM process Status Tool, 显示指定系统内所有的HotSpot虚拟机进程 ...
- java 02-cf_cf活动如何设置java环境变量_如何设置java环境变量
cf助手怎么连接wifi_连接无线网设置 对于刚刚学习java的win7用户来说,首先要学会安装jdk和配置java环境变量,这是学习java的唯一途径,否则编写的代码运行时会出现bug.关于这一点, ...
- java检查版本_如何检查Java版本
java检查版本 Sometimes we need to check the Java version while executing a java program. We could be dev ...
- java string 序列化_详解JAVA序列化
享学课堂作者:逐梦々少年 转载请声明出处! 现在开发过程中经常遇到多个进程多个服务间需要交互,或者不同语言的服务之间需要交互,这个时候,我们一般选择使用固定的协议,将数据传输过去,但是在很多语言,比如 ...
- java timestamp 年月日_如何在java中从TimeStamp获取日期
5 个答案: 答案 0 :(得分:0) 我不确定你真正想要的是什么.你想获得一个java.sql.Timestamp实例,还是想把时间戳作为带有上述模式的字符串? 也许有帮助: ResultSet r ...
最新文章
- 受益匪浅:十个哲理寓言,十个成功秘诀
- 【Android 异步操作】HandlerThread 示例 ( 初始化并执行 | 获取Looper | 获取 Handler | 获取消息队列 | 设置空闲队列 | 代码示例 )
- Intel Realsense D435 pyrealsense2 get_option_range() 获取rs.option中参数值取值范围 获取默认值
- Oracle中TO_DATE格式的使用小结
- 电气:蒙特卡洛1000个风光场景并通过削减法|聚类法得到几个典型场景(matlab\python实现)
- VTK:Rendering之FlatVersusGouraud
- asp.net core 自定义基于 HttpContext 的 Serilog Enricher
- Javascript--File对象
- React开发(124):ant design学习指南之form中的this.props.form
- 嵌入式linux 零基础-实践起步 --- 003 --- 交叉编译中环境变量PATH的设定
- Python+OpenGL绘制任意形状的三次贝塞尔曲线
- 【Android】 认识反射机制(Reflection)
- [BZOJ]4199: [Noi2015]品酒大会(后缀数组+笛卡尔树)
- window.showModalDialog用法
- [error]:启用sqlserver配置管理器异常,内存不足
- ES6文档 思维导图笔记
- 免费的Access数据库员工管理系统下载-IT技术网站 企业人员管理系统源码
- opengl导入obj模型
- KDiff3 merge conflict 窗口操作说明
- 第4章 程序的控制结构(单元测试题Python含答案)
热门文章
- 浅谈AsyncLocal,我们应该知道的那些事儿
- 跟我一起学.NetCore之Swagger让前后端不再烦恼及界面自定义
- 都在讨论高并发,结果连并发量、TPS、QPS都分不清
- .NET或.NET Core Web APi基于tus协议实现断点续传
- 如何创建一个自定义的`ErrorHandlerMiddleware`方法
- 教你自制.NET Core Global Tools
- .NET Core 给使用.NET的公司所带来的机遇
- ASP.NET Core 3.0预览版体验
- Docker最全教程之Ubuntu下安装Docker(十五)
- C# 枚举特性 FlagAttribute 的应用