Android에서 일반 Json 해석기 사용자 정의
3122 단어 Android
package com.suniot.caigou.parser;
import java.lang.reflect.Type;
import org.apache.http.util.TextUtils;
import org.json.JSONException;
import org.json.JSONObject;
import com.google.gson.Gson;
import com.lyh.lib.utils.DebugLog;
import com.suniot.caigou.entity.JsonResult;
import com.suniot.caigou.myenum.JsonStatus;
/**
* @author lyh
* @description Json Json : {"status":0,"message":" ","data":[]}
* @date 2014-11-16
* @param
*/
public class JsonParser {
private Class classOfT;
private Type typeOfT;
public JsonParser(Class classOfT) {
this.classOfT = classOfT;
}
public JsonParser(Type typeOfT) {
this.typeOfT = typeOfT;
}
/**
* JSON
*
* @param jsonStr
* @return
* @throws JSONException
*/
public JsonResult parseJSON(String jsonStr) throws JSONException {
JsonResult result = new JsonResult();
if (TextUtils.isEmpty(jsonStr)) {
result.setStatus(JsonStatus.FAIL);
result.setMessage(" ");
return result;
}
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(jsonStr);
} catch (Exception e) {
DebugLog.e(" ");
DebugLog.e(e.getLocalizedMessage());
result.setStatus(JsonStatus.FAIL);
result.setMessage(" ");
return result;
}
try {
int status = jsonObject.getInt("status");
result.setStatus(JsonStatus.valueOf(status));
} catch (Exception e) {
DebugLog.e(" staus status ( Int )");
DebugLog.e(e.getLocalizedMessage());
result.setStatus(JsonStatus.FAIL);
result.setMessage(" ");
return result;
}
try {
String message = jsonObject.getString("message");
result.setMessage(message);
} catch (Exception e) {
DebugLog.e(e.getLocalizedMessage());
}
try {
String data = jsonObject.getString("data");
if (!TextUtils.isEmpty(data) && !data.equals("[]")
&& !data.equals("{}")) {
T entity = null;
if (classOfT != null)
entity = (T) new Gson().fromJson(data, classOfT);
else if (typeOfT != null)
entity = (T) new Gson().fromJson(data, typeOfT);
result.setData(entity);
}
} catch (Exception e) {
DebugLog.e(e.getLocalizedMessage());
}
return result;
}
}
package com.suniot.caigou.myenum;
/**
* @author lyh
* @description
* @date 2015-04-15
*/
public enum JsonStatus {
/**
*
*/
NOT_LOGIN(-1),
/**
*
*/
FAIL(0),
/**
*
*/
SUCCESS(1);
private int value = 0;
private JsonStatus(int value) {
this.setValue(value);
}
public static JsonStatus valueOf(int value) {
switch (value) {
case -1:
return NOT_LOGIN;
case 0:
return FAIL;
case 1:
return SUCCESS;
default:
return FAIL;
}
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.