[英]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.