2013-02-19 3 views
0

Я делаю действия на Ближнем изделия, и если его успех я получаю значение какJava: Разбор JSON отформатированные строки в Java

String result = ["RESULT","DELETE","OK"] 

И в случае, если операция Failed я получаю resposne, как

String result = ["RESULT","DELETE","ERROR"] 

Мне нужно знать, если операция является успех или неуспех поэтому для этого я сделал это

public class Test { 

    public static void main(String args[]) { 

     String result = "[\"RESULT\",\"DELETE\",\"ERROR\"]"; 

     if (!result.contains("ERROR")) { 
      System.out.println("success"); 
     } else { 
      System.out.println("Failed"); 
     } 

    } 

Это работает отлично, но не уверен, что если т у него есть какие-либо негативные последствия/или в случаях, когда код может выйти из строя.

Пожалуйста, предложите, если есть лучший подход.

+2

Используйте правильную библиотеку для разбора Json. Например. Джексон. – bmargulies

ответ

3

Ваш код может выйти из строя, если, например, вы получите сообщение об успешном завершении, которое содержит ERROR (маловероятно, но может случиться).

Вы должны использовать библиотеку для анализа результата в List/Array, посмотрите здесь на StackOverflow на тонну решений для разбора Json Strings на объекты в Java (например, Jackson - это библиотека для этого).

Вы также должны подтвердить наличие заранее заданного числа гипотез, например, создать enum для возможных типов результатов и проверить, является ли это одним из них.

-1
String[] result = {"RESULT","DELETE","OK"}; 
    if(Arrays.asList(result).contains("OK")) 
     System.out.println("Ok"); 

Метод Try Arrays.asList() для проверки заданных массивов содержит этот элемент или нет.

+0

Тип несоответствия: невозможно преобразовать из строки в строку [] – Pawan

0

Я хотел бы предложить использовать объект презентации вместо массива здесь:

{ 
"RESULT": { 
    "operation": "DELETE", 
    "status" : "ERROR" 
} 
} 

Существует вы можете найти много инструментов для разбора JSON в Java объекты: http://www.json.org/

В другом случае он будет трудно расширить набор кодов. Например.

String result = "[\"RESULT\",\"CREATE\",\"USER\", \"LOGIN\", \"ERROR\", \"SUCCESS\"]"; 

Ошибка была выполнена? или пользователь с логином ERROR был успешно создан?

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