我通过api下载了大量历史加密市场数据。格式如下:
[
[1601510400000,"4.15540000","4.16450000","4.15010000","4.15030000","4483.01000000",1601510459999,"18646.50051400",50,"2943.27000000","12241.83706500","0"],
...
[1609490340000,"4.94020000","4.95970000","4.93880000","4.94950000","5307.62000000",1609490399999,"26280.03711000",98,"3751.46000000","18574.22402400","0"]
]
我将其视为一个数组,内部数组包含异构类型(总是以相同的顺序包含相同的类型)。作为中间步骤,我已将其保存到文本文件中,但我希望将其读回并Map到以下类型的对象数组:
public class MinuteCandle {
private long openTime;
private double openValue;
private double highValue;
private double lowValue;
private double closeValue;
private double volume;
private long closeTime;
private double quoteAssetVolume;
private int numberOfTrades;
private double takerBuyBaseAssetVolume;
private double takerBuyQuoteAssetVolume;
private double someGarbageData;
//...
}
我使用spring框架和jackson库进行jsonMap。这是可行的还是我应该手动解析文本?
3条答案
按热度按时间3vpjnl9f1#
我会分两步来做:
将json内容读入
List<Object>
和Jackson在一起。转换每个
List<Object>
变成一个MinuteCandle
对象并将这些对象收集到MinuteCandle
s。从
List<Object>
至MinuteCandle
(上面的步骤2)可以通过在MinuteCandle
班级。jvidinwx2#
假设文件中存储的文本是有效的json,类似于java中如何从txt文件读取json数据的解决方案?可以使用
com.google.gson.Gson
具体如下:wqsoz72f3#
使用jsonformat并在将shape指定为
ARRAY
:另外,考虑使用
BigDecimal
而不是double
如果你想储存一个价格。另请参见:
一个现实的例子,在货币中使用bigdecimal比使用double要好得多
如何用jackson反序列化混合类型的匿名数组