How to ignore a JSON element in Android Retrofit-ThrowExceptions

Exception or error:

I am developing an Android App which is sending a JSON using Android Retrofit (it converts a POJO class in a JSON). It is working fine, but I need to ignore in the sending of JSON one element from the POJO class.

Does anyone know any Android Retrofit annotation?


POJO Class:

public class sendingPojo
   long id;
   String text1;
   String text2;//--> I want to ignore that in the JSON

   getId(){return id;}
   setId(long id){ = id;

   getText1(){return text1;}
   setText1(String text1){
     this.text1 = text1;

   getText2(){return text2;}
   setText2(String text2){
     this.text2 = text2;


Interface Sender ApiClass

 public interface SvcApi {

 public sendingPojo addsendingPojo(@Body sendingPojo sp);


Any idea how to ignore text2?

How to solve:

I found an alternative solution if you don’t want to use new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create() .

Just including transient in the variable I need to ignore.

So, the POJO class finally:

public class sendingPojo {
    long id;
    String text1;
    transient String text2;//--> I want to ignore that in the JSON

    getId() {
        return id;

    setId(long id) { = id;

    getText1() {
        return text1;

    setText1(String text1) {
        this.text1 = text1;

    getText2() {
        return text2;

    setText2(String text2) {
        this.text2 = text2;

I hope it helps


Mark the desired fields with the
@Expose annotation, such as:

@Expose private String id;

Leave out any fields that you do not want to serialize. Then just create your Gson object this way:

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();


You can configure Retrofit by adding the GSON object from the GSONBuilder into your ConverterFactory, see my example below:

private static UsuarioService getUsuarioService(String url) {
    return new Retrofit.Builder().client(getClient()).baseUrl(url)

private static OkHttpClient getClient() {
    return new OkHttpClient.Builder().connectTimeout(5, MINUTES).readTimeout(5, MINUTES)

private static Gson getGson() {
    return new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

To ignore the field elements simply add @Expose(deserialize = false, serialize = false) to your properties or none, and for (de)serialize your fields elements you can add the @Expose() annotations with empty values to your properties.

@Entity(indexes = {
        @Index(value = "id DESC", unique = true)
public class Usuario {

    @Id(autoincrement = true)
    @Expose(deserialize = false, serialize = false) 
    private Long pkey; // <- Ignored in JSON
    private Long id; // <- Ignored in JSON, no @Expose annotation
    @Index(unique = true)
    private String guid; // <- Only this field will be shown in JSON.


If you are using Kotlin + Retrofit + Moshi
(I tested this)
In case where you want to conditionally ignore fields, you can set it to null.

data class  User(var id: String,  var name: string?)

val user = User() = "some id" = null

The Json generated would be

"id": "some id"

Leave a Reply

Your email address will not be published. Required fields are marked *