2015-06-30 7 views
1

Есть ли способ в Java для создания JSONObject без необходимости иметь дело с исключением? В настоящее время я использую конструктор по умолчанию, который, однако, заставляет меня помещать блоки try/catch в код. Поскольку в остальной части кода я использую «opt» версию get, проверяя, является ли возвращаемое значение нулевым, существует ли способ построить объект таким же образом? (т. е. какой-то конструктор, который возвращает null, если он не может построить json из строки).Создание JSONObject в Java без исключения исключения

Пример:

  try { 
       JSONObject temp = new JSONObject(someString); 
     } catch (JSONException e) { 
       e.printStackTrace(); 
     } 

То, что я хотел бы сделать:

JSONObject temp = ??????(someString); 
if(temp != null) {...} 
+2

Опубликовать свой код .... –

+0

Почему бы вам не положить возврат null в блок catch? –

+0

Потому что я хочу вообще избежать блока catch. –

ответ

3

Вам нужно создать метод вручную, так как любой анализатор, скорее всего, бросить один или другой Exception в случае любое несоответствие. Попробуйте следующее: -

public JSONObject verifyJSON(String inputString){ 
     JSONObject temp; 
     try { 
      temp = new JSONObject(someString); 
     } catch (JSONException e) { 
      temp = null; 
      e.printStackTrace(); 

     } 
     return temp; 
    } 

Тогда вы можете сделать: -

JSONObject temp = verifyJSON(someString); 
if(temp != null) {...} 
+0

Я понимаю, что это самое лучшее, что я мог сделать, вместе с предложениями JB Nizet об использовании исключения времени выполнения. Я думаю, что легче справляться с исключениями. –

+0

Да, конечно @flower_green. Вы также можете обрабатывать исключения времени выполнения и выполнять любую операцию, которую хотите сделать. Также использование класса SuperClass 'Exception' также может быть хорошим вариантом, если возникает другая ошибка, кроме' RuntimeException' –

Смежные вопросы