我是java和objectMapper的新手。我正在尝试解析json字段,该字段可能是键具有两种类型,它可以是字符串或数组。
例子:
{
"addresses": [],
"full_name": [
"test name_1",
"test name_2"
],
}
要么
{
{
"addresses": [],
"full_name": "test name_3",
}
}
类的例子:
@JsonIgnoreProperties(ignoreUnknown = true)
@Data -> lombok.Data
public class Document {
private List<String> addresses;
@JsonProperty("full_name")
private String fullName;
}
我使用objectMapper来反序列化json,当“ full_name”字段具有字符串但到达数组时无法反序列化时,它可以正常工作。
这个想法是,当到达属性时将字符串放入值,但到达数组时,将de数组元素串联为字符串(String.join(“,”,value))
可以在类方法中应用自定义反序列化吗?例如setFullName()(使用lombok.Data)
我在该站点上看到了其他示例,但没有用。
谢谢大家
从jackson
2.6开始,您可以使用JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY
@JsonProperty("full_name")
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
private String[] fullName;
我是java和objectMapper的新手。我正在尝试解析json字段,该字段可能具有两种类型,它可能是字符串或数组。 例如: 或 类示例: 我使用objectMapper来反序列化json,当“full_name”字段有一个字符串时可以正常工作,但是当数组到达时,数组无法反序列化。 这个想法是,当到达一个字符串时,将值放在属性中,但当到达数组时,将数组元素连接为字符串(String.join
问题内容: 它应该是如此简单,但是在尝试一个小时的尴尬之后,我只是找不到它。 我需要获取一个JSON字符串,例如,解析为。 给 问题答案: 理查兹的答案略有不同,但可以使用字符串,因此可以将其简化为:
问题内容: 我有一个下面的JSON,我需要从中制作一个。在下面的JSON中,我只有3个级别,但通常可以更高,有时也可以更低。 我图的关键是它的部分和值应是最后。 现在我可以嵌套在其中,因此在为此创建POJO时遇到问题。我可以有一个级别,也可以嵌套在每个级别中,而我总是需要获取最后一个的ID 。 因此,我通过转到jsonschema2pojo来为此创建一个POJO,并提供了JSON,它在其中生成了我
问题内容: 我在解组一些我无法控制的Json时遇到麻烦。在一个字段中,有99%的时间是字符串,但偶尔是数组。 杰森如下: 错误:json:无法将数组解组为字符串类型的Go结构字段MyListItem.display_name 问题答案: 使用json.RawMessage捕获变化的字段。 使用json“-”名称对解码器隐藏字段。顶级JSON解码后,应用程序将填充此字段。 解组顶级JSON: 根据原
发生了严重的错误。 我有 我需要准备要传递给Spring jdbcTemplate的对象数组。然而,由于某些原因,ArrayList中的元素被视为字符串,因此在执行jdbcTemplate时会中断,抱怨它无法从字符串转换为int。然后我尝试在循环中转换,看看这是否有帮助:-\显然,我不能做Integer。parseInt作为IDE正确地将其视为整数。每当我将整数a=Activities分配给Del
我写了一段代码,其中我扫描了一个整数,假设是121,为了把它分成3个部分,我把它变成一个字符串,并尝试通过拆分再次转换它?有什么简单的方法可以让它变成这样吗?