/*
ShengDao Android Client, JsonMananger
Copyright (c) 2014 ShengDao Tech Company Limited
*/
package com.yutils;
import android.util.Log;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
import com.alibaba.fastjson.util.TypeUtils;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.List;
/**
* Created by yangjiang on 2016/12/7.
* E-Mail:1007181167@qq.com
* Description:[JSON解析管理类] 使用 fastjson
**/
public class JsonManager {
static {
TypeUtils.compatibleWithJavaBean = true;
}
/**
* 将json字符串转换成java对象
*
* @param json 需要转化json字符
* @param cls cls 返回实例对象类型
* @return T
*/
public static <T> T jsonToBean(String json, Class<T> cls) {
return JSON.parseObject(json, cls);
}
/**
* 将json字符串转换成java List对象
*
* @param json 需要转化json字符
* @param cls cls 返回实例对象类型
* @return List<T>
*/
public static <T> List<T> jsonToList(String json, Class<T> cls) {
return JSON.parseArray(json, cls);
}
/**
* 将bean对象转化成json字符串
*
* @param obj 转化的对象实例
* @return String JSON 字符
*/
public static String beanToJson(Object obj) {
String result = JSON.toJSONString(obj);
Log.d("json", result);
return result;
}
/**
* 将bean对象转化成json字符串
*
* @param obj 转化的对象实例
* @param filter 序列化处理
* @return String JSON 字符
*/
public static String beanToJson(Object obj, SimplePropertyPreFilter filter) {
String result = JSON.toJSONString(obj, filter);
Log.v("json", result);
return result;
}
/**
* 判断JSONObject中是否包含指定的key
*/
public static String getJsonValue(JSONObject jsonObject, String str) {
try {
if (jsonObject.has(str)) {
return jsonObject.getString(str);
} else {
return null;
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}