2015-07-02 3 views
1

Я пишу Java программу с получением данных в формате JSON через HTTP GET методы и возвращает следующее после того, как перемещаться по дереву объектов:Исключения нулевого указателя при замене символа "без текста затем литья значения Float

{ 
"year":"2015", 
"period":"M03", 
"periodName":"March", 
"value":"141178", 
"footnotes":[{}] 
} 

Теперь я хочу, чтобы принять значение и касте его к поплавку, я пытался сделать это, как например:

JSONParser parser = new JSONParser(); 

try 
{ 
    JSONObject 
    BLSemployment = (JSONObject) parser.parse(_RDATA); 
    BLSemployment =  ((JSONObject) BLSemployment.get("Results")); 

    JSONArray 
    BLSemploymentseries = ((JSONArray) BLSemployment.get("series")); 

    BLSemployment =  ((JSONObject) BLSemploymentseries.get(0)); 
    BLSemploymentseries = ((JSONArray) BLSemployment.get("data")); 

    for(int i = 0; i < 12; i++) 
    { 
     BLSemployment = ((JSONObject) BLSemploymentseries.get(i)); 

     HistoricalNonFarmPayrollData[i] = Float.parseFloat(JSONValue.toJSONString(BLSemployment.get("value")).replace("\"" , "")); 
     HistoricalNonFarmPayrollYear[i] = JSONValue.toJSONString(BLSemployment.get("year")); 
     HistoricalNonFarmPayrollMonth[i] = JSONValue.toJSONString(BLSemployment.get("periodName")); 
    } 
} 
catch (ParseException pe) 
{ 
    System.out.println(pe); 
} 

Однако теперь я получаю ошибку:

Exception in thread "main" java.lang.NullPointerException 
     at BLSFramework.getNonFarmPayrolls(playground.java:354) 
     at playground.main(playground.java:27) 
+0

Разделите линию на несколько строк и посмотрите, что означает «null» или используйте отладчик! – MalaKa

+0

Я не понимаю эту часть HistoricalNonFarmPayrollData [я] = Float.parseFloat (JSONValue.toJSONString (BLSemployment.get ("значение")) .Надеть ("\"», "")); BLSemployment.get («значение»), похоже, возвращает уже строку. Не должно быть? HistoricalNonFarmPayrollData [i] = Float.parseFloat (BLSemployment.get («value»)); –

+0

вы не поместили код, который выдает исключение. должен также опубликовать это сообщение. – iullianr

ответ

0

ПОСТАНОВИЛИ: иногда сайт BLS не отправляет данные за периоды времени, и я кодировал в течение этого периода времени.