title: How I can use Gson in Retrofit library?
body: <p>I used Retrofit for send request and receive the response in android but have problem when I want convert response which come from the sever it is always give me <code>Exception</code>:</p>
  
  <pre><code>retrofit.RetrofitError: com.google.gson.JsonSyntaxException: 
                 java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING
  </code></pre>
  
  <p>When response from server should give me list from movies so I need put all this movies in list.   </p>
  
  <p><code>Movie</code> (Model Class):</p>
  
  <pre><code>public class Movie {
      public Movie() {}
      @SerializedName("original_title")
      private String movieTitle;
      @SerializedName("vote_average")
      private String movieVoteAverage;
      @SerializedName("overview")
      private String movieOverview;
      ............  
  }
  </code></pre>
  
  <p><code>GitMovieApi</code> Class:</p>
  
  <pre><code>public interface GitMovieApi {
      @GET("/3/movie/{movie}")  
      public void getMovie(@Path("movie") String typeMovie,@Query("api_key") String  keyApi, Callback&lt;Movie&gt; response);    
  }
  </code></pre>
  
  <p><code>RestAdapter</code> configuration:</p>
  
  <pre><code>RestAdapter restAdapter = new RestAdapter.Builder()
                      .setLogLevel(RestAdapter.LogLevel.FULL)
                      .setConverter(new GsonConverter(new GsonBuilder().registerTypeAdapter(Movie.class, new UserDeserializer()).create()))
                      .setEndpoint("http://api.themoviedb.org")
                      .build(); 
                       GitMovieApi git = restAdapter.create(GitMovieApi.class);  
                  git.getMovie("popular", "Keyapi", new Callback&lt;Movie&gt;() {
                  @Override
                  public void success(Movie movie, Response response) {
                      Toast.makeText(getActivity(), "s", Toast.LENGTH_LONG).show();
                  }
                  @Override
                  public void failure(RetrofitError error) {
                      Toast.makeText(getActivity(), error.getMessage(), Toast.LENGTH_LONG).show();
                  }
              });
  </code></pre>
  
  <p><strong>UserDeserializer:</strong></p>
  
  <pre><code>public class UserDeserializer implements JsonDeserializer&lt;Movie&gt; {
          @Override
          public Movie deserialize(JsonElement jsonElement, Type typeOF,
                                   JsonDeserializationContext context)
                  throws JsonParseException {
              JsonElement userJson = new JsonParser().parse("results");
              return new Gson().fromJson(userJson, Movie.class);
          }
      }    
  </code></pre>
  
  <p><strong>Json(Response):</strong></p>
  
  <pre><code>{
    "page": 1,
    "results": [
      {
        "adult": false,
        "backdrop_path": "/tbhdm8UJAb4ViCTsulYFL3lxMCd.jpg",
        "genre_ids": [
          53,
          28,
          12
        ],
        "id": 76341,
        "original_language": "en",
        "original_title": "Mad Max: Fury Road",
        "overview": "An apocalyptic story set in the furthest.",
        "release_date": "2015-05-15",
        "poster_path": "/kqjL17yufvn9OVLyXYpvtyrFfak.jpg",
        "popularity": 48.399601,
        "title": "Mad Max: Fury Road",
        "video": false,
        "vote_average": 7.6,
        "vote_count": 2114
      },
      {
        "adult": false,
        "backdrop_path": "/sLbXneTErDvS3HIjqRWQJPiZ4Ci.jpg",
        "genre_ids": [
          10751,
          16,
          12,
          35
        ],
        "id": 211672,
        "original_language": "en",
        "original_title": "Minions",
        "overview": "Minions Stuart.",
        "release_date": "2015-06-25",
        "poster_path": "/s5uMY8ooGRZOL0oe4sIvnlTsYQO.jpg",
        "popularity": 31.272707,
        "title": "Minions",
        "video": false,
        "vote_average": 6.8,
        "vote_count": 1206
      },     
  ],
    "total_pages": 11871,
    "total_results": 237415
  }  
  </code></pre>