如何使用Jackson将没有键的原始JSON数组转换为Java对象
我有以下Json字符串:如何使用Jackson将没有键的原始JSON数组转换为Java对象,java,json,jackson,Java,Json,Jackson,我有以下Json字符串: [512768,[1493990100000,1628.4,1628.2,1628.4,1628,7.6513558]] 我不知道如何使用Jackson将其转换为Java对象,我真的不知道在没有键的情况下如何进行转换。 当然我知道我需要创建一个objectMapper等 objectMapper.readValue(candle, CandleChannel.class); 但我的意思是,我不知道该如何注释这个类。我尝试了很多方法,但我总是收到一个错误,告诉我我无法
[512768,[1493990100000,1628.4,1628.2,1628.4,1628,7.6513558]]
我不知道如何使用Jackson将其转换为Java对象,我真的不知道在没有键的情况下如何进行转换。
当然我知道我需要创建一个objectMapper等
objectMapper.readValue(candle, CandleChannel.class);
但我的意思是,我不知道该如何注释这个类。我尝试了很多方法,但我总是收到一个错误,告诉我我无法解析它:
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of application.model.CandleChannel out of START_ARRAY token
at [Source: [512768,[1493990100000,1628.4,1628.2,1628.4,1628,7.6513558]]; line: 1, column: 1]
所以我只是想知道我应该如何注释这个类?谁能帮我一下吗?这是我目前掌握的代码:
public class CandleChannel {
@JsonProperty
private Long channelId;
@JsonProperty
private List<Candle> candles;
public CandleChannel() {
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public List<Candle> getCandles() {
return candles;
}
public void setCandles(List<Candle> candles) {
this.candles = candles;
}
}
一定有办法,但我不确定如何将其转换为Java对象。您的类定义需要以下格式的JSON示例:
{
"CHANNEL_ID": 389251,
"MTS": 1494001560000,
"OPEN": 1566,
"CLOSE": 1565.2,
"HIGH": 1566.1,
"LOW": 1565.1,
"VOLUME": 126.84178235
}
请看这篇文章中公认的答案:
您希望
@JsonProperty(“CHANNEL\u ID”)
完成什么?在在线api中,我看到他们在json CHANNEL\u ID中调用该字段,您认为我不需要它吗?我在示例json中没有看到任何字段名称。Jackson应该如何匹配它们呢?是的,我想你是对的,也许我不需要这些。这是我正在使用的api:我刚刚删除了所有字段名,但它也不起作用。我现在将用当前代码更新我的问题这不是一个有效的答案,因为我无法更改输入json。。。似乎有一个外部对象和内部的蜡烛阵列。我需要更改Java代码,而不是输入。知道怎么做吗。注:我更新了问题,我同意。我正在解释错误的来源。我不知道如何使用Jackson将没有密钥的原始JSON数组转换为Java对象。我不确定这是否可能。好的。。。是的,这正是我需要的。要在没有任何ID的情况下完成此操作,以下帖子建议编写一个自定义反序列化程序:@ToongOrges,用于无效的JSON。
{
"CHANNEL_ID": 389251,
"MTS": 1494001560000,
"OPEN": 1566,
"CLOSE": 1565.2,
"HIGH": 1566.1,
"LOW": 1565.1,
"VOLUME": 126.84178235
}