规则:花括号对应JSONObject, 类
方括号对应JSONArray, List
一般情况javabean中解析的是resultMessage内的json数据,rs啥的都不用解析。
解析json常见解析JSONObject即json对象和JSONArray即json数组两种
####一、手动解析:包括解析JSONObject和JSONArray
public class SampleEntity implements Serializable {
public int id;//跳转目标id
public String name;//跳转名称
//解析JSONObject
public static SampleEntity parseJSONObject(JSONObject jsonObject) {
SampleEntity entity = new SampleEntity();
entity.id=jsonObject.optInt("id");
entity.name=jsonObject.optString("name");
return entity;
}
//解析JSONArray
public static List<SampleEntity> parseJsonArray(JSONArray jsonArray) {
ArrayList<SampleEntity> list = new ArrayList<>();
if (jsonArray == null || jsonArray.length() == 0)
return list;
for (int i = 0; i < jsonArray.length(); i++) {
list.add(parseJSONObject(jsonArray.optJSONObject(i)));
}
return list;
}
}
####二、GSON解析:包括解析JSONObject和JSONArray
解析JSONObject(json是jsonobject.tostring()得到的)
Gson gson = new Gson();
SampleEntity picEntity =gson.fromJson(json,SampleEntity.class);
解析JSONArray((json是jsonoArray.tostring()得到的))
Gson gson = new Gson();
Type type = new TypeToken<List<SampleEntity>>() {}.getType();
List<SampleEntity> picList = gson.fromJson(json, type);
val type = object : TypeToken<List<Entity>>() {}.type
val entityList = Gson().fromJson<List<Entity>>(jsonArray.toString(), type)
何时解析解析JSONObject,何时解析解析JSONArray
拿到的json数据的resultMessage内的内容以花括号开头表示是个JSONObject,当然要解析JSONObject喽;
resultMessage内的内容以方括号开头,表示是是个JSONArray,当然要解析JSONArray喽。