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()); } }