我有一个API,为了获取数据,我必须发送一个JSON参数。这是必须在@body
中发送才能获取数据的JSON。
{
"ViewName": "Members_HousholdAdmin",
"DataRequest":{
"filter":[{
"field":"",
"logic":"",
"operator":"",
"value":""
}],
"offset":0,"take":0,
"Sort":[{"field":"","dir":""}]
},
"parameters":[
{"key": "%FundId","value": "1" }
]
}
它在postman中工作,但在Android中,我有以下错误:
Expected BEGIN_ARRAY but was STRING at line 1 column 2 path $
我想这是我的模型中的一个问题,但我无法修复它。
我的型号:
public class SendParametersGetData {
@SerializedName("ViewName")
public String ViewName;
@SerializedName("DataRequest")
public DataRequest DataRequest = null;
@SerializedName("Parameters")
public List<Parameters> parameters = null;
}
public class DataRequest {
@SerializedName("take")
public int take=0;
@SerializedName("offset")
public int offset=0;
@SerializedName("filter")
public ArrayList<Filter> filter;
@SerializedName("Sort")
public ArrayList<Sort> Sort;
}
public class Parameters {
@SerializedName("value")
public String value;
@SerializedName("key")
public String key;
public Parameters(String key, String value) {
this.value = value;
this.key = key;
}
}
还有两种型号用于排序和筛选。我使用改装
@POST("test.php")
Single<ArrayList<Members>> getMembers(@Body SendParametersGetData sendParametersGetData);
我使用构造函数设置SendParametersGetData(在本例中,仅设置了视图名和参数),并将其作为输入提供给getMembers方法。
ArrayList<Parameters> parameters = new ArrayList<>();
parameters.add(new Parameters("%FundId",String.valueOf(fund.getFundId())));
SendParametersGetData sendParametersGetData = new SendParametersGetData("Members_HousholdAdmin",parameters);
dataSource.getMembers(sendParametersGetData).subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<ArrayList<Members>>() {
@Override
public void onSubscribe(Disposable d) {
compositeDisposable.add(d);
}
@Override
public void onSuccess(ArrayList<Members> members) {
}
@Override
public void onError(Throwable e) {
view.hideProgress();
TastyToast.makeText(view.getContext(), e.toString(), 6000, TastyToast.ERROR);
}
});
我在您的模型类中发现了以下错误。
参数
需要重命名为参数
以与JSON键匹配。
@SerializedName("parameters")
public List<Parameters> parameters = null;
我想这应该可以解决你的问题。我认为其他模型类很好。
我找到了一些解决方案,但我真的不知道如何开始。 这是我的密码。 接口 主要活动
从Android改型读取JSON字符串时出现问题。
应为BEGIN\u对象,但在第1行第1列为字符串请帮助我,我遇到此错误 我的列表提供了从解析的json创建对象的类。Java语言 我的JSON: 使用GSON解析JSON的MainActivity代码。。。。。 错误:应为BEGIN\u对象,但在第1行第1列为字符串
我试图只获取字符串请求,但它的给定错误如下 我的API输出如下: 响应代码:
我看到这个问题很多次了,但还是不明白。看起来我在现场发送请求,但它的正文不正确。但为什么呢?可能我不清楚改造是如何工作的,但我不是只是收集请求的链接并等待服务器的答案吗?这是链接:这里 带有请求的接口 和带有基本URL的类 改装构建类 JSON是通过这个解析的 主要活动是: 日志: 那么,如果请求错误,我应该为正常工作更改什么?
我正在使用Retrofit和RxJava库并尝试解析此url: 我的代码如下。 APIInterface.java 主要活动。Java语言 我的模型课如下 大学生Java语言 我正在 D/错误:java。lang.IllegalStateException:应为BEGIN\u数组,但在日志的第1行第2列路径$处为BEGIN\u对象 我到处都在搜索这个错误,但找不到关于RxJava和改型的任何信息。