-1

我有一个 JSON 文件。现在,我根据关键字查询它,并将其保存到数组中。问题是该值可能为空、null 或字符串。所以我的代码有例外:

NumberFormatException:对于输入字符串:“null”在 sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) at java.lang.Float.parseFloat(Unknown Source)

这是我的代码:

for(int i=0, size=jsonStr.length; i<size; i++){

    if(jsonStr[i]==null){
        System.out.println("It's null");
    }else if(jsonStr[i].isEmpty()){
        System.out.println("It is empty!");
    }else if(Float.parseFloat(jsonStr[i])>=0){
        result[j]=jsonStr[i];
    }else{
      collect[j]=jsonStr[i];
    }


}

请问如何避免呢?jsonStr 中的值可以是“”、null 或字符串(可以转换为浮点数)。

谢谢

4

2 回答 2

2

Float.parseFloat("null")将抛出NumberFormatException: for input string: "null"

所以,你的 json 看起来像{"str" : "null"}而不是{"str" : null}.
对于这种情况,您应该使用"null".equals(...)

if(jsonStr[i]==null || "null".equals(jsonStr[i]))
{
   System.out.println("It's null");
}
else if(jsonStr[i].isEmpty())
{
   System.out.println("It is empty!");
}
于 2013-10-02T20:16:25.000 回答
0

我认为您有一个例外,因为您正在将 int 与 null 进行比较。

您必须先检查对象类型。

if (jsonStr instanceof Integer)

于 2013-10-02T20:20:38.190 回答