package com.letv.http.parse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.text.TextUtils;
import com.letv.http.bean.LetvBaseBean;
/**
* 主解析器,封装部分解析方法(面向JSON 解析)
*
* 对解析方法,暂作包装,对异常处理的策略再定
* @param <D>
* */
public abstract class LetvMainParser<T extends LetvBaseBean , D> extends LetvBaseParser<T , D> {
public LetvMainParser(){
super(0);
}
public LetvMainParser(int from){
super(from);
}
public boolean has(JSONObject jsonObject, String name){
if(jsonObject == null){
return false ;
}
return jsonObject.has(name);
}
protected int getInt(JSONObject jsonObject, String name) throws JSONException {
int value = -1;
String valueString = getString(jsonObject , name);
if(!TextUtils.isEmpty(valueString)){
value = Integer.parseInt(valueString);
}
return value;
}
protected int getInt(JSONArray jsonArray, int index) throws JSONException {
int value = -1;
String valueString = getString(jsonArray , index);
if(!TextUtils.isEmpty(valueString)){
value = Integer.parseInt(valueString);
}
return value;
}
protected long getLong(JSONObject jsonObject, String name) throws JSONException {
long value = -1;
String valueString = getString(jsonObject , name);
if(!TextUtils.isEmpty(valueString)){
value = Long.parseLong(valueString);
}
return value;
}
protected long getLong(JSONArray jsonArray, int index) throws JSONException {
long value = -1;
String valueString = getString(jsonArray , index);
if(!TextUtils.isEmpty(valueString)){
value = Long.parseLong(valueString);
}
return value;
}
protected boolean getBoolean(JSONObject jsonObject, String name) throws JSONException {
boolean value = false;
value = jsonObject.getBoolean(name);
return value;
}
protected boolean getBoolean(JSONArray jsonArray, int index) throws JSONException {
boolean value = false;
value = jsonArray.getBoolean(index);
return value;
}
protected float getFloat(JSONObject jsonObject, String name) throws JSONException {
float value = -1;
String valueString = getString(jsonObject , name);
if(!TextUtils.isEmpty(valueString)){
try{
value = Float.parseFloat(valueString);
}catch(Exception e){
e.printStackTrace();
}
}
return value;
}
protected float getFloat(JSONArray jsonArray, int index) throws JSONException {
float value = -1;
String valueString = getString(jsonArray , index);
if(!TextUtils.isEmpty(valueString)){
try{
value = Float.parseFloat(valueString);
}catch(Exception e){
e.printStackTrace();
}
}
return value;
}
protected String getString(JSONObject jsonObject, String name) throws JSONException {
String value = "";
if(jsonObject.has(name) == false){
return value;
}
value = jsonObject.getString(name);
if("null".equalsIgnoreCase(value)){
value = "";
}
return value;
}
protected String getString(JSONArray jsonArray, int index) throws JSONException {
String value = "";
value = jsonArray.getString(index);
if("null".equalsIgnoreCase(value)){
value = "";
}
return value;
}
protected JSONArray getJSONArray(JSONObject jsonObject, String name) throws JSONException {
if(jsonObject == null){
throw new JSONException("JSONObject is null");
}
JSONArray array = jsonObject.getJSONArray(name);
return array;
}
protected JSONArray getJSONArray(JSONArray jsonArray, int index) throws JSONException {
if(jsonArray == null){
throw new JSONException("JSONArray is null");
}
JSONArray array = jsonArray.getJSONArray(index);
return array;
}
protected JSONObject getJSONObject(JSONObject jsonObject, String name) throws JSONException {
if(jsonObject == null){
throw new JSONException("JSONObject is null");
}
JSONObject object = jsonObject.getJSONObject(name);
return object;
}
protected JSONObject getJSONObject(JSONArray jsonArray, int index) throws JSONException {
if(jsonArray == null){
throw new JSONException("JSONArray is null");
}
JSONObject object = jsonArray.getJSONObject(index);
return object;
}
}