JSONObject ,JSONArray取值其用法

来源:互联网 发布:买火车票12306软件 编辑:程序博客网 时间:2024/05/16 01:21

String 转 JSON 或 JSONArray

JSONArray resultJson = JSONArray.fromObject(str);
JSONObject js = JSONObject.fromObject(str);

JSON 中获取 JSONArray 或 String

String str = jsonObject.getString("str");//获取 sequences的值JSONArray sequencesArray = jsonObject.getJSONArray("sequences");

总之 JSONObject 中有很多 get 方法,基本你想要的一般都有

JSONArray 中获取 JSONArray 或 String

String im = jsonArray.getString(0);JSONObject js = jsonArray.getJSONObject(0);

JSONArray 中也有很多 get 方法。但是里面的参数一般都是根据索引来的。

有时候解析 json 格式的数据时要看清楚,最外面的是 ‘{’ 是 jsonObject ,是 ‘[’ 的是JSONArray。
给出具体的代码实验一下

String str = "[{\"uri\":\"http://****/152077\",\"status\":\"done\",\"sequenceType\":\"Max72\","+                 "\"sequences\":[{\"smoking\":1.0,\"sunExposure\":0.0,\"multiplier\":1.0,\"images\":[{\"age\":20,\"uri\":\"http://***/x3w3Z2\"},"+                 "{\"age\":22,\"uri\":\"http://***/g0hfq\"},"+                 "{\"age\":28,\"uri\":\"http://***/pycOho\"},"+                 "{\"age\":35,\"uri\":\"http://***/gRBNSf\"},"+                 "{\"age\":47,\"uri\":\"http://***/c3xqTA\"},"+                 "{\"age\":55,\"uri\":\"http://***/ueyqU\"},"+                 "{\"age\":61,\"uri\":\"http://***/4ttoTq\"},"+                 "{\"age\":67,\"uri\":\"http://***/YrvUR\"},"+                 "{\"age\":72,\"uri\":\"http://***/EbJLI\"}]}]}]";        //上面一串是 JSONArray        JSONArray resultJson = JSONArray.fromObject(str);        //获取含有 sequences 的JSONObject        JSONObject jsonArray = resultJson.getJSONObject(0);        //获取 sequences的值        JSONArray sequencesArray = jsonArray.getJSONArray("sequences");        //获取含有 images 的JSONObject        JSONObject im = sequencesArray.getJSONObject(0);        //获取 images 对应的JSONArray        JSONArray imageArray = im.getJSONArray("images");        for( Object str1  : imageArray){            JSONObject jsonObject = JSONObject.fromObject(str1);            System.out.println("age "+jsonObject.getInt("age")+": url "+jsonObject.getString("uri"));        }