title: Parse Json objects with different types using gson
body: <p>I have the following json from the Server. It is a json array with different objects. I want to identify the user objects based on the key "type" and add them to a user hashmap and fetch user to show information in my view containing the "payments" object. I am using gson and retrofit. TIA</p>
  
  <pre><code>"included":[
        {
           "id":"1",
           "type":"payments",
           "attributes":{
              "amount_cents":100,
              "amount_currency":"INR",
              "description":"Test description!!",
              "created_at":"2016-03-01T11:30:53Z",
              "status":"paid",
              "paid_at":null,
              "charged_at":null,
              "formatted_amount":"Rs1.00"
           },
           "relationships":{
              "sender":{
                 "data":{
                    "id":"2",
                    "type":"users"
                 }
              },
              "receiver":{
                 "data":{
                    "id":"1",
                    "type":"users"
                 }
              }
           }
        },
        {
           "id":"2",
           "type":"users",
           "attributes":{
              "first_name":"Rob",
              "last_name":"Thomas"
           }
        },
        {
           "id":"1",
           "type":"users",
           "attributes":{
              "first_name":"Matt",
              "last_name":"Thomas"
           }
        }]
  </code></pre>
  
  <p></p>
  
  <p>My classes are </p>
  
  <pre><code>public class ActivityFeedItem implements IFeedItem {
      @SerializedName("id")
      String id;
  
      @SerializedName("type")
      String type;
  
      @SerializedName("attributes")
      Attributes attributes;
  
      protected class Attributes {
          double amount_cents;
          String amount_currency;
          String description;
          String created_at;
          String status;
          String paid_at;
          String charged_at;
          String formatted_amount;
  
          Relationships relationships;
  
          public double getAmount_cents() {
              return amount_cents;
          }
  
          public String getAmount_currency() {
              return amount_currency;
          }
  
          public String getDescription() {
              return description;
          }
  
          public String getCreated_at() {
              return created_at;
          }
  
          public String getStatus() {
              return status;
          }
  
          public String getPaid_at() {
              return paid_at;
          }
  
          public String getCharged_at() {
              return charged_at;
          }
  
          public String getFormatted_amount() {
              return formatted_amount;
          }
  
          public Relationships getRelationships() {
              return relationships;
          }
      }
  }
  </code></pre>
  
  <p>and </p>
  
  <pre><code>public class UserFeedItem implements IFeedItem {
  
      @SerializedName("id")
      String id;
  
      @SerializedName("type")
      String type;
  
      @SerializedName("attributes")
      Attributes attributes;
  
  
      public class Attributes {
          @SerializedName("first_name")
          String first_name;
  
          @SerializedName("last_name")
          String last_name;
      }
  }
  </code></pre>