解码simple.json Java中的浮点数

hAl*_*AlE 0 java json json-simple

我正在尝试使用Java中的simple.json来读取和解析json文件.但是,在浮点数上我得到错误.我该如何解析浮点数?

JSON文件如下:

[
  {
    "region":"NF",
    "destination":"d1",
    "source":"s1",
    "time":2003,
    "value":0.1
  },
  {
    "region":"NF",
    "destination":"d2",
    "source":"s2",
    "time":2004,
    "value":0.002
  },
]
Run Code Online (Sandbox Code Playgroud)

我解析它的代码是:

JSONArray jsonArray = (JSONArray)obj;
Iterator<JSONObject> iterator = jsonArray.iterator();

while(iterator.hasNext()){
    JSONObject jsonObject = iterator.next();
    String region = (String) jsonObject.get("region");
    String src = (String) jsonObject.get("source");
    String dst = (String) jsonObject.get("destination");
    long time = (long) jsonObject.get("time");
    long val = (long) jsonObject.get("value");
}
Run Code Online (Sandbox Code Playgroud)

Joe*_*oel 10

如果要存储浮点数,则需要该类型的变量,即double.

double val = ((Number)jsonObject.get("value")).doubleValue();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,该get()方法应返回java.lang.Number的实例.然后,您可以调用该doubleValue()方法来存储浮点值.