I tried the following solutions:
1) Turning on/off serializeNulls() in my typeadapater while serializing certain fields like follows:
boolean current = out.getSerializeNulls();
out.setSerializeNulls(true);
out.name("fieldName").value(someValue);
out.setSerializeNulls(false);
This didn't work unfortunately.
2) Creating two different Gson's with serializeNulls setup differently. Then when serializing choosing between the two gson's based on what I was serializing. That littered my code and seems inefficient because of the reflection.