//假设有个json字符串需要转换,, 现在试用JsonObject进行操作,要求是: key必须是字符串才行.
String asString = "{\"response\":{\"isSuccess\":\"T\",\"traceList\":[{\r\n" +
" \"trace\": {\r\n" +
" \"billCode\": 66824545122,\r\n" +
" \"desc\": \"[虎门]的【李元】正在派件, 电话:15846565466\",\r\n" +
" \"optTime\": \"2012-12-16 12:22:20\",\r\n" +
" \"optType\": \"派件\"\r\n" +
" }\r\n" +
" }]}}";
//将字符串转换为json对象 获取根对象
JSONObject object = new JSONObject(asString);
/*
打印:object:{"response":{"traceList":[{"trace":{"optType":"派件","billCode":66824545122,"optTime":"2012-12-16 12:22:20","desc":"[虎门]的【李元】正在派件, 电话:15846565466"}}],"isSuccess":"T"}}
*/
Sysout.out.println(object);
//获取子对象
JSONObject responseJSONObject = object.getJSONObject("response");
/*
打印出结果,看一下打印出来的内容: responseJSONObject:{"traceList":[{"trace":{"optType":"派件","billCode":66824545122,"optTime":"2012-12-16 12:22:20","desc":"[虎门]的【李元】正在派件, 电话:15846565466"}}],"isSuccess":"T"}
*/
System.out.println("responseJSONObject:"+responseJSONObject);
//拿到子对象字段 使用optString方法,即使为空,也不会报出异常.
String isSuccess = responseJSONObject.optString("isSuccess");
if (isSuccess.equals("T") && asString.contains("traceList")) {
/*
获取json数组 拿到的是[ ]内的
*/
String traceList = responseJSONObject.getJSONArray("traceList").optString(0);
System.out.println(traceList + "-----");
if (!"".equals(traceList) && traceList != null) {
JSONObject trace = new JSONObject(traceList);
if (traceList.split("optTime").length < 3) {
System.out.println("长度小于3");
JSONObject traceObj = trace.getJSONObject("trace");
String billCode="";
String otpType="";
String scanType="";
String optType2 = traceObj.optString("optType");
if(optType2.contains("派件")) {
System.out.println(scanType="派件");
}
} else {
System.out.println("進來2");
System.out.println(2);
}
}
}
过程复杂 可以想象成一层层的获取到
Java之JSONObject字符串转换操作方法过程
最新推荐文章于 2024-07-01 02:07:36 发布