Gson力场是字符串

时间:2018-03-20 15:37:31

标签: android gson

我有一个班级,我有一个名为" list_elements"作为字符串。 这是我的HttpResponse中的jsonObject,因此gson序列化希望将其解析为OBject而不是String。

我可以强迫Gson将其解析为String吗?

感谢' S

1 个答案:

答案 0 :(得分:1)

您可以实现自己的反序列化程序。这是一个例子:

import com.google.gson.JsonDeserializer;

public class MyModelDeserializer implements JsonDeserializer<MyModel> {
    @Override
    public MyModel deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        JsonObject aJson = json.getAsJsonObject();
        String myStringObject = aJson.get("myJsonObjectKeyWhichIwantToParseLikeString").getAsJsonObject().toSttring()
        MyModel myModel = new MyModel();
        myModel.setMyStringObject(myStringObject);
        //Dont forget to deserialize and set in myModel another fields from json if needed.
        return myModel;
    }
}

并且不要忘记在gson builder中注册您的反序列化程序。你可以这样做:

Gson gson = new GsonBuilder()
            ...
            .registerTypeAdapter(MyModel.class, new MyModelDeserializer())
            .create()