首先给定的JSON格式为:
callBackResult={"contentType":"OBJECT","entity":{"FUN_STORE_RECALLUSER":[{"total":3469}]},"elapsed":357}
需求是取出total对应的数值“3469”,那如何实现呢?
1.构建一个普通的Java类
2.使用JSON库去解析public class ReCallUser { private String key; private String value; public ReCallUser() { } public ReCallUser(String key, String value) { this.key = key; this.value = value; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
注:JSONObject jsonObject = new JSONObject(callBackResult); JSONArray jsonArray = jsonObject.getJSONObject("entity").getJSONArray(String.valueOf(FUN_STORE_RECALLUSER)); List<ReCallUser> reCallUsers=new ArrayList<>(); for (int i = 0; i < jsonArray.length(); i++) { ReCallUser reCallUser=new ReCallUser(); jsonObject = jsonArray.getJSONObject(i); reCallUser.setKey("macList"); reCallUser.setValue(jsonObject.getString("macList")); reCallUsers.add(reCallUser); reCallUser=null; } for (ReCallUser user:reCallUsers ) { System.out.println("----------------"); System.out.println(user.getKey()+","+user.getValue()); System.out.println("----------------"); }
import org.json.JSONArray; import org.json.JSONObject;不是阿里巴巴或者其它库中json