本文由PurpleSword(jzj1993)原创,转载请注明
原文网址 http://blog.csdn.net/jzj1993
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
try {
JSONTokener tokener = new JSONTokener(json);
JSONObject joResult = new JSONObject(tokener);
JSONArray words = joResult.getJSONArray("ws");
for (int i = 0; i < words.length(); i++) {
JSONArray items = words.getJSONObject(i).getJSONArray("cw");
JSONObject obj = items.getJSONObject(0);
chComTmp = outerparseCom(obj.getString("w"));
}
} catch (Exception e) {
e.printStackTrace();
}
方法二(使用谷歌开源项目Gson,需要gson.jar程序库的支持)
按照json的嵌套格式定义类,其中各种变量名称和json变量名相同(int,String等类型皆可支持),数组则使用List格式,然后用new Gson().fromJson(json, WeatherResult.class)进行解析(注意用try…catch捕获异常)。
添加gson.jar程序库到Java或安卓工程的方法:jar文件放到项目下的libs文件夹中,右击jar文件,菜单中选择BuildPath-->Add to BuildPath即可。
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
public class WeatherResult {
private String error; // 0
private String status; // "success"
private String date; // "2014-03-26"
private List<Results> results;
private WeatherResult() {
}
public static WeatherResult fromJson(String json) {
try {
return new Gson().fromJson(json, WeatherResult.class);
} catch (JsonSyntaxException e) {
return null;
}
}
public class Results {
protected String currentCity; // "北京"
protected List<WeatherData> weather_data;
public class WeatherData {
protected String date; // "周三(今天, 实时:23℃)" / "周四"
protected String weather; // "霾" / "多云转阵雨" / "阴转多云"
protected String wind; // "微风"
protected String temperature; // "22 ~ 10℃"
}
}
}