2013-02-19 111 views
0

我做一個動作的中間件,如果它成功,我得到的價值爲的Java:解析一個JSON格式化字符串到Java

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

而在情況下,如果操作失敗,我得到的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"); 
     } 

    } 

這是工作的罰款,但不知道如果T他有任何負面影響/或在代碼可能失敗的情況下。

請建議是否有更好的方法。

+2

使用合適的庫來解析Json。例如。傑克遜。 – bmargulies 2013-02-19 13:33:55

回答

3

例如,如果您收到包含ERROR(不太可能,但可能發生)的成功消息,則您的代碼可能會失敗。

您應該使用庫將結果解析爲List/Array,在StackOverflow上查看大量用於解析Json字符串到Java對象的解決方案(例如,Jackson是一個庫來執行此操作)。

您還應該根據預設數量的假設進行驗證,例如,爲可能的結果類型創建一個enum,並檢查它是否是其中的一個。

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

嘗試使用Arrays.asList()方法檢查給定的數組是否包含該元素。

+0

類型不匹配:無法從字符串轉換爲字符串[] – Pawan 2013-03-09 20:53:29

0

我會建議使用對象呈現,而不是陣列的位置:

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

有你可以找到很多的工具,用Java解析JSON對象: http://www.json.org/

在它看來將其他案件很難擴展代碼集。例如。

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

有沒有錯誤?或用戶登錄錯誤成功創建?