ExchangeMetaData implements Serializable { public Map<CurrencyPair, CurrencyPairMetaData> getCurrencyPairs() { return currencyPairs; } ExchangeMetaData(
      @JsonProperty("currency_pairs") Map<CurrencyPair, CurrencyPairMetaData> currencyPairs,
      @JsonProperty("currencies") Map<Currency, CurrencyMetaData> currency,
      @JsonProperty("public_rate_limits") RateLimit[] publicRateLimits,
      @JsonProperty("private_rate_limits") RateLimit[] privateRateLimits,
      @JsonProperty("share_rate_limits") Boolean shareRateLimits); @JsonIgnore static Long getPollDelayMillis(RateLimit[] rateLimits); Map<CurrencyPair, CurrencyPairMetaData> getCurrencyPairs(); Map<Currency, CurrencyMetaData> getCurrencies(); RateLimit[] getPublicRateLimits(); RateLimit[] getPrivateRateLimits(); boolean isShareRateLimits(); @JsonIgnore String toJSONString(); @Override String toString(); @JsonProperty("public_rate_limits")
  private RateLimit[] publicRateLimits; }
@Test public void shouldDeserialize() throws IOException { InputStream is = ExchangeMetaDataTest.class.getResourceAsStream( "/org/knowm/xchange/core/meta/exchange-metadata.json"); ObjectMapper mapper = new ObjectMapper(); ExchangeMetaData metaData = mapper.readValue(is, ExchangeMetaData.class); assertThat(metaData.getCurrencyPairs().get(CurrencyPair.BTC_USD).getTradingFeeCurrency()) .isEqualTo(Currency.USD); assertThat(metaData.getCurrencyPairs().get(CurrencyPair.BTC_USD).getPriceScale()).isEqualTo(2); assertThat(metaData.getCurrencyPairs().get(CurrencyPair.BTC_USD).getMinimumAmount()) .isEqualTo(new BigDecimal("0.0001")); assertThat(metaData.getCurrencyPairs().get(CurrencyPair.BTC_USD).getMaximumAmount()) .isEqualTo(new BigDecimal("100")); }