Ich habe folgenden JSON-String JSON Arrays konvertieren:wie ohne Schlüssel zu einem Java-Objekt mit Jackson
[512768,[1493990100000,1628.4,1628.2,1628.4,1628,7.6513558]]
Ich habe keine Ahnung, wie es in ein Java-Objekt zu verwandeln Jackson verwenden, I don‘ Ich weiß wirklich, wie man es macht, wenn es keine Schlüssel gibt. Ofcourse weiß ich, dass ich eine objectMapper etc erstellen müssen ...
objectMapper.readValue(candle, CandleChannel.class);
Aber was ich meine, ist, ich habe keine Ahnung, wie ich die Klasse mit Anmerkungen versehen sollte. Ich habe versucht, viele Dinge, aber ich halte nur einen Fehler immer mir zu sagen, dass ich es nicht analysieren kann:
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]
Also habe ich nur gefragt, wie ich die Klasse mit Anmerkungen versehen sollte? Kann mir jemand helfen? Dies ist der Code, den ich bisher habe:
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;
}
}
Und das innere Objekt:
@JsonFormat(shape= JsonFormat.Shape.ARRAY)
public class Candle {
@JsonProperty
private Integer mts;
@JsonProperty
private Float open;
@JsonProperty
private Float close;
@JsonProperty
private Integer high;
@JsonProperty
private Float low;
@JsonProperty
private Float volume;
public Candle() {
}
public Integer getMts() {
return mts;
}
public void setMts(Integer mts) {
this.mts = mts;
}
public Float getOpen() {
return open;
}
public void setOpen(Float open) {
this.open = open;
}
public Float getClose() {
return close;
}
public void setClose(Float close) {
this.close = close;
}
public Integer getHigh() {
return high;
}
public void setHigh(Integer high) {
this.high = high;
}
public Float getLow() {
return low;
}
public void setLow(Float low) {
this.low = low;
}
public Float getVolume() {
return volume;
}
public void setVolume(Float volume) {
this.volume = volume;
}
}
Es muss einen Weg geben, aber ich bin nicht sicher, wie das Objekt in ein Java TRANSFOR.
Was erwarten Sie '@JsonProperty ("CHANNEL_ID")' zu erreichen? – shmosel
In der Online-API sehe ich, dass sie dieses Feld in der json channel_id nennen Sie denken, dass ich das nicht brauche? – sfrj
Ich sehe keine Feldnamen in Ihrem Beispiel-JSON. Wie soll Jackson sie zusammenbringen? – shmosel