【发布时间】:2021-01-30 12:16:50
【问题描述】:
我有一个问题。我有一个ArrayList,其对象名为:Candlestick。
Candlestick 类如下所示:
public class Candlestick {
private long MainKey;
private String Market;
private String Coin;
private String Period;
private double Open;
private double High;
private double Low;
private double Close;
public String getMarket() {
return Market;
}
public String getCoin() {
return Coin;
}
public String getPeriod() {
return Period;
}
}
现在我想创建如下所示的 JSON:
{
"USDT":{
"BTC":{
"5m":[
{
"MainKey":1,
"Open":3000,
"Close":3100,
"High":3100,
"Low":2900
},
{
"MainKey":2,
"Open":3000,
"Close":3100,
"High":3100,
"Low":2900
}
],
"1h":[
{
"MainKey":1,
"Open":3000,
"Close":3100,
"High":3100,
"Low":2900
},
{
"MainKey":2,
"Open":3000,
"Close":3100,
"High":3100,
"Low":2900
}
],
"3h":[
{
"MainKey":1,
"Open":3000,
"Close":3100,
"High":3100,
"Low":2900
},
{
"MainKey":2,
"Open":3000,
"Close":3100,
"High":3100,
"Low":2900
}
]
}
}
}
为此,我在 Java 中执行了以下操作:
Map<String, Map<String, Map<String, ArrayList<Candlestick>>>> candles = new HashMap<>();
for (Candlestick candlestick : simCandlestickList) {
ArrayList<Candlestick> validCandlesticks = new ArrayList<>();
System.out.println("Market: " + candlestick.getMarket());
System.out.println("Coin: " + candlestick.getCoin());
System.out.println("Period: " + candlestick.getPeriod());
candles.put(candlestick.getMarket(), Map.of(candlestick.getCoin(), Map.of(candlestick.getPeriod(), simCandlestickList)));
}
这几乎给了我想要的结果,除了 1 件事... simCandlestickList 中的对象没有按应有的方式打印:
{
"USDT":{
"BTC":{
"1m":[
com.company.Candlestick@942a29c,
com.company.Candlestick@1ed6388a,
com.company.Candlestick@5a45133e,
com.company.Candlestick@534a5a98,
com.company.Candlestick@4f80542f
]
}
}
}
现在如何打印数组中烛台的每个属性?硬币、市场和时期是否再次出现都没关系!
【问题讨论】: