我是JSON解析的新手,我使用Square的Retrofit库,遇到了这个问题。
我正在尝试解析此JSON响应:
[
{
"id": 3,
"username": "jezer",
"regid": "oiqwueoiwqueoiwqueoiwq",
"url": "http:\/\/192.168.63.175:3000\/users\/3.json"
},
{
"id": 4,
"username": "emulator",
"regid": "qwoiuewqoiueoiwqueoq",
"url": "http:\/\/192.168.63.175:3000\/users\/4.json"
},
{
"id": 7,
"username": "test",
"regid": "ksadqowueqiaksj",
"url": "http:\/\/192.168.63.175:3000\/users\/7.json"
}
]
这是我的模型:
public class Contacts {
public List<User> contacts;
}
…
public class User {
String username;
String regid;
@Override
public String toString(){
return(username);
}
}
我的界面:
public interface ContactsInterface {
@GET("/users.json")
void contacts(Callback<Contacts> cb);
}
我的成功方法:
@Override
public void success(Contacts c, Response r) {
List<String> names = new ArrayList<String>();
for (int i = 0; i < c.contacts.size(); i++) {
String name = c.contacts.get(i).toString();
Log.d("Names", "" + name);
names.add(name);
}
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, names);
mSentTo.setAdapter(spinnerAdapter);
}
当我将其用于成功方法时,会引发错误
预期为BEGIN_OBJECT,但在第1行column2处为BEGIN_ARRAY
怎么了
现在,您正在解析响应,就好像它是这样格式化的:
{
"contacts": [
{ .. }
]
}
异常告诉您,您期望在根目录有一个对象,但实际数据实际上是一个数组。这意味着您需要将类型更改为数组。
最简单的方法是仅将列表用作回调中的直接类型:
@GET("/users.json")
void contacts(Callback<List<User>> cb);
我正在通过改型和RXAndroid与来自android的REST API进行交互,我遇到了一个问题。 当我向我的“api/users/{id}/{id}/classes”发送GET请求时,我的api会以用户类列表作出响应,如下所示: 我的界面如下所示: 我从片段中这样称呼它: 我的类对象以及getter和setter如下所示: gson不应该看到“类”:[]数组并从中解析对象吗?我做错了什么
我试图使用改型在一些解析的JSON上执行一些代码,但是我得到了一个非法的状态异常。以下是我的改装实例: Coinbase Pro API接口: 对服务器的调用请求(这是导致错误的原因): 最后是JSON解析成的类对象: 因此,根据我从类似文章中收集的信息,发生非法状态异常是因为我试图传递给Gson的对象的类型不正确。但我不明白这是怎么回事,因为我正在使用改装;GsonConverterFactor
我每次都会收到这个错误:预期的begin_数组,但它是begin_对象。我不知道我是否需要添加反序列化程序或warrper类来进行改造,但我不知道如何以简单的方式来满足我所有项目的api json响应,下面是我的改造代码: - 我的Json: 我的源代码
我做了一个功能:输入身份证号码,点击提交按钮,然后获得身份证的基本信息。 我使用的模型是: 我使用的改装界面: 当我输入正确的身份证号码时,一切正常。返回的结果是: 一切运作良好。 然而,当我输入不正确的身份证号码时,不好的事情发生了: 返回的结果是: 我怎样才能修复这些漏洞?
问题内容: 我正在尝试使用自定义转换器进行改造 以下是我的自定义转换器 我收到以下错误 在尝试进行此api调用时 我想转换器正在覆盖对api调用的请求,如何避免这种情况并传递在改造服务中定义的请求主体。 回应: 问题答案: 我会做这样的事情: 然后在创建RestAdapter时: 然后: 这不是理想的,因为对象是自定义的,但是我现在能想到的任何其他解决方案都更加复杂。 这里的反序列化器专门为声明为
如何使用RxJava和Kotlin中的改型创建api调用的泛型类? 我的JAVA实现是:: 首先添加Gradle依赖项:(更新到最新版本(如果可用)) //用于改装 实现“com.squareup.reverfit2:reverfit:2.3.0” 实现“com.squareup.reverfit2:converter-gson:2.3.0” //对于拦截器实现“com.squareup.okht