GSON /如何解析数字

时间:2019-02-05 20:37:45

标签: java json gson

我想用GSON解析JSON文档。但是,我对数字有疑问。

我的模式只是简单地遍历所有令牌……这是先窥视然后基于切换语句中的TokenType做一些事情。以下代码段中的readerJsonReader

while (reader.hasNext() && !endReached) {
  final var nextToken = reader.peek();

  switch (nextToken) {
    case NUMBER:
      // reader.nextInt(), reader.nextLong(), reader.nextDouble()
      break;
    ...
  }
}

我怎么知道它是Integer / Long还是十进制值,也许只适合BigDecimal?只是调用nextString(),然后尝试使用BigDecimal解析字符串,依此类推?

1 个答案:

答案 0 :(得分:1)

JSON中,数字始终是以下形式的浮点数:
['-'] digits [ '.' digits ] [ 'e' sign digits ]

所以基本上是double,除了NaN±Infinity

对于通用代码,请使用nextDouble(),除非您期望非常大的数字,否则需要使用BigDecimal

nextInt()nextLong()方法是您知道数字应该为整数值的辅助方法。