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"));
}