2013-10-02 6 views
-1

JSON 파일이 있습니다. 이제는 키워드를 기반으로 쿼리하고 배열에 저장합니다. 값이 비어 있거나 null이거나 문자열 일 수 있습니다. 그래서 내 코드는이 예외 :Null for Java in empty

는 NumberFormatException : java.lang.Float.parseFloat에서 sun.misc.FloatingDecimal.readJavaFormatString (알 수없는 소스) (알 수없는 소스)

에서 "널 (null)"입력 문자열

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 또는 문자열 (float로 변환 가능) 일 수 있습니다.

+1

json 파서는 무엇을 사용하고 있습니까? –

+9

문자열이 문자 그대로 "null"이 아닌''null ''인 것처럼 보입니다. – Eric

+0

@SotiriosDelimanolis jsonObject에서 getJSONArray를 사용합니다. 및 JSONObject에서 getJSONArray. – Eric

답변

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!"); 
} 
+0

문제가 해결되었습니다! 감사합니다. – Eric

0

를 사용해야합니다 나는 당신이 널 (null)와 int를 비교하는 때문에 예외를 가지고 생각합니다.

먼저 개체 유형을 확인해야합니다.

if (jsonStr instanceof Integer)

+0

'int'와'null'을 조합 할 경우'NullPointerException'이 던져 질 것입니다. – Ilya