public static void main(String[] args) {
//a是一个json格式的字符串里面有statusCode,returnDatas这两个对象,而returnDatas里面又有一个数组对象
String a="{\"statusCode\":\"error\",\"returnDatas\":[{\"statusCode\":\"error\",\"customerNumber\":\"FC2311061617145\",\"childTrackingNumber\":\"\",\"shipmentid\":\"\",\"labelBillid\":\"\",\"message\":\"系统设置了客户欠款不能预报和入仓!\",\"corpBillid\":\"\"}]}";
//a是一个json格式的字符串里面有statusCode,message这两个对象
String b="{\"statusCode\":\"error\",\"message\":\"打印失败:null\"}";
ObjectMapper objectMapper=new ObjectMapper();
Map map = null;
try {
map = objectMapper.readValue(a, Map.class);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
boolean error = map.containsValue("error");
//判断statusCode对象的内容error是否为true
if(error){
boolean message = map.containsKey("message");
//判断Json的key是否有message
if(message){
JSONObject jsonObject = JSONObject.parseObject(a);
String data = String.valueOf(jsonObject.get("message"));
//输出message的值
System.out.println(data);
}else {
String message1="";
//遍历key值
for (Object key : map.keySet()) {
//判断Json的key是否有returnDatas
if (key.equals("returnDatas")) {
JSONObject jsonObject = JSONObject.parseObject(a);
String data = String.valueOf(jsonObject.get("returnDatas"));
//找到returnDatas的内容为数组对象
JSONArray jsonArray = JSONArray.parseArray(data);
for (int i = 0; i < jsonArray.size(); i++) {
//returnDatas里面message的值
message1 = jsonArray.getJSONObject(i).getString("message");
}
}
}
//输出message的值
System.out.println(message1);
}
}
}
a字符串运行成功如下图:
b字符串运行成功如下图: