初めて質問させていただきます。情報の不足がありましたら追加させていただきます。

AndroidでString型の変数(userID)を持つオブジェクト(UserEntity)をJSONデータに変換してPOSTしたいのですが、以下のエラーが出て困っています。

logcat
E/HomeActivity: エラー :com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $

通信処理の際にRxAndroidを用いています。

HomeActivity.java

public class HomeActivity extends AppCompatActivity {

//  通信用の定数など
public static final String BASE_URL = "http://example.com/index.php";
private static final String TAG = HomeActivity.class.getSimpleName();
private Subscription subscription;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    //  Gson
    Gson gson = new GsonBuilder()
            .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
            .registerTypeAdapter(Date.class, new DateTypeAdapter())
            .create();

    //  Retrofit
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create(gson))
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .build();

    //  API
    UserApi uApi = retrofit.create(UserApi.class);

    //  UserEntity
    UserEntity userInstance = new UserEntity(userID);


    //  非同期処理
    this.subscription = uApi.createUser(userInstance)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<UserEntity>() {
                @Override
                public void onNext(UserEntity ue) {
                    Log.d(TAG, "onNext()にきた");
                }

                @Override
                public void onCompleted() {
                    Log.d(TAG, "onComplete()にきた");
                }

                @Override
                public void onError(Throwable e) {
                    Log.e(TAG, "エラー : " + e.toString());
                }
            });
}

@Override
protected void onDestroy() {
    //  サブスクライブ解除
    this.subscription.unsubscribe();
    super.onDestroy();
}

}

UserApi.java

public interface UserApi {
@POST("userfirst/write.json")
public Observable<UserEntity> createUser(@Body UserEntity ue);

}

UserEntity.java

public class UserEntity {

//  コンストラクタ
public UserEntity(String userID){
    this.userID = userID;
}

//  JSONとの対応
@Expose
@SerializedName("user_id")
private String userID;

}

app/build.gradle

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.google.code.gson:gson:2.4'
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
compile 'com.squareup.okhttp:okhttp:2.7.0'
compile 'io.reactivex:rxandroid:0.24.0'
compile 'io.reactivex:rxjava:1.1.0'
compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'
compile 'io.reactivex:rxandroid:1.1.0'

}

エラーメッセージで調べてみたものの、解決方法を探し出すことができませんでした。
どなたかわかる方がいらっしゃいましたらよろしくお願いいたします。