在项目工程中尤其是在取第三方数据的时候经常会用到解析json的值,现在我们研究一下如果取json的值。
比如这样一个json包,{"initial":"R","name":"reiz","likes":["JavaScript","Skiing","Apple Pie"]}
取值代码
String t=转义后的{"initial":"R","name":"reiz","likes":["JavaScript","Skiing","Apple Pie"]}
JSONObject jo=new JSONObject(t); //json-lib中是jo=JSONObject.fromObject(t);
JSONArray likes=jo.getJSONArray("likes"); //得到likes数组
System.out.prinlnt(like.getString(2)); //打印Apple Pie
外层可以直接通过JSONObject获得,内层含有JSONArray可以通过getJSONArray获得。跳转到内层之后取元素,可以通过getString获得。
在实际的应用中我们还会遇到遍历的多个object的现象
String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ; // 一个未转化的字符串
JSONArray json = JSONArray.fromObject(str ); // 首先把字符串转成 JSONArray 对象
if(json.size()>0){
for(int i=0;i<json.size();i++){
JSONObject job = json.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
System.out.println(job.get("name")+"=") ; // 得到 每个对象中的属性值
}
}