public class Widget {
private Map<String,Object> params;
// Getter, setter, ctor, etc...
}
public Widget fromJSON(String json) {
ObjectMapper jsonMapper = new ObjectMapper();
return jsonMapper.readValue(json, Widget.class);
}
{
"params": [{
"acks": "all"
}, {
"retries": 0
}, {
"batch.size": 16384
}, {
"linger.ms": 1
}, {
"buffer.memory": 33554432
}, {
"key.serializer": "org.apache.kafka.common.serialization.StringSerializer"
}, {
"value.serializer": "org.apache.kafka.common.serialization.StringSerializer"
}]
}
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance
of java.util.LinkedHashMap out of START_ARRAY token
我使用http://jsonlint.com来验证JSON是否有效。因此,我要么需要更改JSON或代码,要么可能两者都需要。有什么想法吗?
JSON是有效的,但对于映射不是。params
的值是一个数组,它应该是一个对象,如下所示:
{
"params": {
"acks": "all",
"retries": 0,
"batch.size": 16384,
"linger.ms": 1,
"buffer.memory": 33554432,
"key.serializer": "org.apache.kafka.common.serialization.StringSerializer",
"value.serializer": "org.apache.kafka.common.serialization.StringSerializer"
}
}
在Jackson五分钟,你可以找到以下关系:
Jackson将用于简单数据绑定的具体Java类型有:
╔══════════════════════╦══════════════════════════════╗
║ JSON Type ║ Java Type ║
╠══════════════════════╬══════════════════════════════╣
║ object ║ LinkedHashMap<String,Object> ║
║ array ║ ArrayList<Object> ║
║ string ║ String ║
║ number (no fraction) ║ Integer, Long or BigInteger ║
║ number (fraction) ║ Double (or BigDecimal) ║
║ true|false ║ Boolean ║
║ null ║ null ║
╚══════════════════════╩══════════════════════════════╝
假设我有这样的物体 我正在使用RestTemboard类从URL中获取json,如下所示: 之后,我想使用jackson对象映射器将json字符串转换为一个对象 将实体类作为第二个参数传递 问题是我应该如何编写ExampleJson实体来处理get-Showed json?我试过这样上课,但似乎不管用。 我得到了这样一个例外:
我使用JAVA jackson将JSON映射到JAVA pojo对象,我的JSON文件是: 在之后,我收到了以下错误消息: 不能反序列化出START_ARRAY令牌 我的POJO课程: 请问,这种JSON格式的正确java POJO是什么?谢谢
我和jackson一起绘制地图,我有点迷茫。我的Json具有以下结构 我确实找到了很多处理数组的教程,但我在第一个标记“d”时就已经失败了。而且根本不需要所有的“_元数据”标记。 我创建了一个包含lastName等属性和一个集合附件的pojo。但我的代码在标记“d”或“_元数据”时总是失败 还有杰克逊的读者 任何提示都将不胜感激。 问候马蒂亚斯
问题内容: 给定这样的结构: 是否可以将其映射到: 这样,您最终获得的实例的属性分别设置为和? 问题答案: 我坚信将您的POJO与外部化分开。将您的JSON读取到Map中,然后像这样构建您的Container / ScoreKeeper对象(对于任何错别字都为apols):
我有一个像这样的json,它嵌套在其中一个字段中- 我创建了一个自定义类, 在我的服务类中,我正在读取json并将其映射到我的EmailTemplate类中,但是映射失败了。这里有什么可以用的? 例外情况: 我试着添加 但这也不起作用。
问题内容: 我正在尝试将JSON文件映射到类对象,然后根据新接收的JSON更新卡。 我的JSON结构是这样的 我的班级看起来像这样: 如何将JSON文件中的值映射到CardInfo类创建的对象的字段中? 更新资料 以下试用版在 ci.description上 打印为null ,是否表示从未创建该对象? 更新2 打印cardInfo给出以下内容: {$ class:FirstCard,id:1,说明