0

我对中间件采取行动,如果它成功,我得到的价值为

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

如果操作失败,我会得到答复

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");
        }

    }

这工作正常,但不确定这是否有任何负面影响/或者代码可能会失败。

请建议是否有更好的方法。

4

3 回答 3

3

例如,如果您收到包含ERROR(不太可能,但可能发生)的成功消息,您的代码可能会失败。

您应该使用库将结果解析为列表/数组,在 StackOverflow 上查看大量用于将 Json 字符串解析为 Java 中的对象的解决方案(例如,Jackson 是一个执行此操作的库)。

您还应该根据预设数量的假设进行验证,例如,enum为可能的结果类型创建一个,并检查它是否是其中之一。

于 2013-02-19T13:33:46.460 回答
0

我建议在这里使用对象表示而不是数组:

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

有很多工具可以在 Java 对象中解析 JSON:http: //www.json.org/

在其他情况下,很难扩展代码集。例如

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

有错误吗?或登录错误的用户已成功创建?

于 2013-02-19T13:35:36.880 回答
-1
String[] result = {"RESULT","DELETE","OK"};
    if(Arrays.asList(result).contains("OK"))
        System.out.println("Ok");

尝试 Arrays.asList() 方法来检查给定的数组是否包含该元素。

于 2013-02-19T13:33:43.093 回答