4 回答
TA贡献1876条经验 获得超6个赞
TA贡献1942条经验 获得超3个赞
TA贡献1794条经验 获得超8个赞
我们平时写的bean类,这个是指定规则的序列化对象,虚拟机认得,你说用json反序列化获取对象,这个规则是后台定的,虚拟机如何认得?
而且你说的,很多人一直遍历json字符串,然后一个字段一个字段的封装,超级麻烦,我也不知道他们为什么这么做?不管是解析成object对象还是list数据,我都有自己封装的工具,就两三行代码.
如下:
private static Gson sGson;
public static Gson getGson() {
if (null == sGson) {
sGson = new Gson();
}
return sGson;
}
/**
* 将json字符串转换成一个对象
*
* @param jsonStr json字符串
* @param field 字段名
* @param clazz 字节码
* @param <T> 类型
* @return
*/
public static <T> T getObject(String jsonStr, String field, Class<T> clazz) {
JSONObject jsonObject = getJSONObject(jsonStr);
T t = getGson().fromJson(jsonObject.optString(field), clazz);
return t;
}
/**
* 将json字符串转换成list数据
*
* @param json
* @param clazz
* @param <T>
* @return
*/
public static <T> List<T> getList(String json, Class<T> clazz) {
List<T> list = null;
list = JSON.parseArray(json, clazz);
return list;
}
/**
* 将json字符串转换成jsonObject
*
* @param jsonStr
* @return
*/
public static JSONObject getJSONObject(String jsonStr) {
JSONObject mJson = new JSONObject();
try {
mJson = new JSONObject(jsonStr);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mJson;
}
这个是我个人的理解,也没有权威的认证过.
添加回答
举报