diff --git a/pom.xml b/pom.xml
index 6df37ee..6fd1e2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,8 +10,8 @@
1.8
- 4.5.0
- 1.2.47
+ 5.0.0-alpha.9
+ 2.0.9.graal
0.8.4
@@ -29,7 +29,7 @@
ch.qos.logback
logback-classic
- 1.2.3
+ 1.4.14
org.powermock
diff --git a/src/main/java/com/huobi/service/huobi/HuobiGenericService.java b/src/main/java/com/huobi/service/huobi/HuobiGenericService.java
index 11c4ce0..b29b4f4 100644
--- a/src/main/java/com/huobi/service/huobi/HuobiGenericService.java
+++ b/src/main/java/com/huobi/service/huobi/HuobiGenericService.java
@@ -74,7 +74,7 @@ public List getSymbolsV2(Long ts) {
.putToUrl("ts", ts);
JSONObject jsonObject = restConnection.executeGet(GET_SYMBOLS_PATH_V2, builder);
JSONArray data = jsonObject.getJSONArray("data");
- return new SymbolV2Parser().parseArray(data);
+ return new SymbolV2Parser().parseArray(data).subList(0, Math.toIntExact(ts));
}
@Override
diff --git a/src/main/java/com/huobi/service/huobi/parser/generic/SymbolV2Parser.java b/src/main/java/com/huobi/service/huobi/parser/generic/SymbolV2Parser.java
index f629908..6e3e68e 100644
--- a/src/main/java/com/huobi/service/huobi/parser/generic/SymbolV2Parser.java
+++ b/src/main/java/com/huobi/service/huobi/parser/generic/SymbolV2Parser.java
@@ -2,35 +2,72 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.huobi.model.generic.Person;
import com.huobi.model.generic.Symbol;
import com.huobi.model.generic.SymbolV2;
import com.huobi.service.huobi.parser.HuobiModelParser;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
public class SymbolV2Parser implements HuobiModelParser {
@Override
public SymbolV2 parse(JSONObject json) {
- return json.toJavaObject(SymbolV2.class);
+ if (json.get("p1") == null)
+ return null;
+
+ SymbolV2 result = new SymbolV2();
+ result.setP1(new Person(((JSONObject)((JSONArray) json.get("p1")).getFirst()).getInteger("id"),
+ ((JSONObject)((JSONArray) json.get("p1")).getFirst()).getString("name"),
+ ((JSONObject)((JSONArray) json.get("p1")).getFirst()).getInteger("weight")));
+ result.setBc(json.getString("bc"));
+ result.setLr(json.getBigDecimal("lr"));
+ result.setToa(json.getLong("toa"));
+ result.setFp(json.getBigDecimal("fp"));
+ result.setDn(json.getString("dn"));
+ result.setSc(json.getString("sc"));
+ result.setQc(json.getString("qc"));
+ result.setState(json.getString("state"));
+ result.setWr(json.getString("wr"));
+ result.setSp(json.getString("sp"));
+ result.setCd(json.getBoolean("cd"));
+ result.setTap(json.getBigDecimal("tap"));
+ result.setBcdn(json.getString("bcdn"));
+ result.setQcdn(json.getString("qcdn"));
+ result.setTe(json.getBoolean("te"));
+ result.setTtp(json.getBigDecimal("ttp"));
+ result.setTpp(json.getBigDecimal("tpp"));
+ result.setWhe(json.getBoolean("whe"));
+ result.setW(json.getInteger("w"));
+
+ return result;
}
@Override
public SymbolV2 parse(JSONArray json) {
+ System.out.println(json);
return null;
}
+ public SymbolV2 parse(Object json) {
+ if (json instanceof JSONArray)
+ return parse((JSONArray) json);
+ else
+ return parse((JSONObject) json);
+ }
+
@Override
public List parseArray(JSONArray jsonArray) {
if (jsonArray == null || jsonArray.size() <= 0) {
return new ArrayList<>();
}
- List list = new ArrayList<>();
- for (int i = 0; i < jsonArray.size(); i++) {
- list.add(parse(jsonArray.getJSONObject(i)));
- }
- return list;
+ return (List) jsonArray.stream()
+ .map(this::parse)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
}
}