说明
首次发布
2019年01月30日
最近更新
2019年02月18日
@SerializedName()
有时候,后台返回数据的命名不是特别友好,为了方便我们自己的开发,就需要将其给的字段做个映射。那么,这时候我们就用到了@SerializedName()。
需要导入的包:import com.google.gson.annotations.SerializedName;
// Model
import com.google.gson.annotations.SerializedName;
public class TestModel {
// @SerializedName("data")
// 也可以在alternate里,设置几个后台可能返回的值
@SerializedName(value = "myData", alternate = {"MyData", "mydata", "data"})
public String myData; // 后台给的是`data`字段,而我们想设为`myData`
}
// Activity
String string = "{\"data\":\"这是data\"}";
TestModel model = new Gson().fromJson(string, TestModel.class);
Log.i(TAG, "onCreate: " + model.myData);
解析工具类
import java.util.List;
public class GsonUtil {
/**
*解析字符串字典
*
* @author 人民重重
* @time 2019/1/31 上午9:04
*/
public static T parseJsonWithGson(String json, Class type) {
T result = new Gson().fromJson(json, type);
return result;
}
/**
* 解析数组
* @author 人民重重
* @time 2019/1/31 上午10:12
*/
public static List parseArrayJsonWithGson(String json, Class type) {
List list = new Gson().fromJson(json, new TypeToken>(){}.getType());
return list;
}
}
例1:单纯的一个字典
Person