2013-02-19 126 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\"]"; 

有没有错误?或用户登录错误成功创建?