最初のJSON文字列は、このようなものです:とjava.lang.ClassCastException:com.google.gson.internal.LinkedTreeMapは私のJava Beanクラスにキャストすることはできません
{
"code": "2000",
"msg": "success",
"data": {
"khmc": "some company",
"contact": "jack",
"phone": "18888888888",
"address": "Shanghai"
}
}
このような二JSON文字列:
{
"code": "2000",
"msg": "success",
"data": "add success"
}
返されたjsonには、上記の2つのタイプがあります。
改造バージョンとrxjavaバージョンは、このようなものです:私のAndroidアプリで
//ReactiveX
compile 'io.reactivex:rxjava:1.2.3'
compile 'io.reactivex:rxandroid:1.2.1'
//Retrofit
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
、私は私のフラグメントが一つだけプレゼンターインスタンスを持つことができ、私のアプリを構築するためにMVPを使用するので、私のフラグメントに、私が使用しましたサーバーAPIの2つのタイプの要求を送信する唯一のPresenterインスタンスは、onNextコールバックには1つしかありません。以下のようなメインコード:
public class JudiciaryHttpResult<T> {
public int code;
public String msg;
public T data;
}
JudiciaryUserは以下のようなものです::
public class AddFormFragment extends MvpFragment<AddFormPresenter> implements IAddFormView {
@Override
public void onNext(JudiciaryHttpResult judiciaryHttpResult) {
switch (judiciaryHttpResult.code) {
case Constants.JudiciaryResponseCode.JUDICIARY_SUCCESS_CODE:
if (judiciaryHttpResult.data != null) {
Object object = judiciaryHttpResult.data;
if (object instanceof String) {
ToastUtil.showShort(object.toString());
} else {
JudiciaryUser user = (JudiciaryUser) object;
mKhmcEt.setText(user.getKhmc());
mContactEt.setText(user.getContact());
mPhoneEt.setText(user.getPhone());
mAddressEt.setText(user.getAddress());
}
}
break;
}
}
}
}
JudiciaryHttpResultは、以下のようなものです
public class JudiciaryUser {
public String khmc;
public String contact;
public String phone;
public String address;
}
私は私のフラグメントでonNextコールバックを取得するとき、 elseブロックの最初の行コードは次のようになります。
JudiciaryUser user = (JudiciaryUser) judiciaryHttpResult.data;
私は質問のタイトルのような例外を得るでしょう、誰かが私を助けることができますか?