繁体   English   中英

Java:将Json格式化的String解析为Java

[英]Java : Parsing a Json formated String to Java

我对Middle ware做了一个动作,如果它的成功我得到了Value

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

    }

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

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

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

您应该使用库将结果解析为List / Array,在StackOverflow上查看大量解决方案,以便将Json Strings解析为Java中的对象(例如,Jackson是一个库来执行此操作)。

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

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

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

您可以在Java对象中找到许多解析JSON的工具: http//www.json.org/

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM