在Java中,使用Jackson ObjectMapper,我试图反序列化从Dynamo数据流中读取的一个Dynamo数据库对象。使用Underscore反序列化主键值:意外的字符预期的空间分隔根级值
我第一次打电话: record.getDynamodb().getNewImage().get("primaryKey").getS().toString()
从流中返回“1_12345”的primaryKey值。
然后我用它在对象映射器来创建新实例的度量与PrimaryKey的成员集对象:objectMapper.readValue("1_12345", Metrics.class);
的问题是我得到的是通话异常: Unexpected character ('_' (code 95)): Expected space separating root-level values
指标.class是一个没有构造函数的简单POJO。我想知道是否在readValue调用中需要任何特殊注释或转义字符。我似乎无法找到有关此错误解决方案的明确迹象。 (注意 - 我无法直接从json解析它的原因是因为json的结构从流中解析出来并不简单,值看起来像这样,S表示字符串,N表示数字等。 : {primaryKey={S: 1_12345,}, rangeKey={N: xxx}... etc. }
)
'1_12345'不是有效的JSON。你的“Metrics”对象是什么样的? json将不得不在结构上匹配它。 – teppic