我对JSON
很虚弱,可能有一个愚蠢的问题,并且想知道如何解析放置在JSON
数组中的JSON
对象。
所以,到目前为止,我有
public Single<Profile> doProfileApiCall() {
return Rx2AndroidNetworking.post(ApiEndPoint.ENDPOINT_PROFILE)
.addHeaders(mApiHeader.getProtectedApiHeader())
.build()
.getObjectSingle(Profile.class);
要检索我的个人资料参数,但是在端点中,我有:
[{"Name": "this", "Email","that@gmail.com"}]
我将端点设置为:
public static final String ENDPOINT_PROFILE =
BuildConfig.BASE_URL
+ "/linktojson";
这给了我以上JSON
。
但是问题是[],我该如何使用:
public Single<Profile> doProfileApiCall() {
return Rx2AndroidNetworking.post(ApiEndPoint.ENDPOINT_PROFILE)
.addHeaders(mApiHeader.getProtectedApiHeader())
.build()
.getObjectSingle(Profile.class);
这样我可以使用具有
的profile.java模型类public class Profile {
@Expose
@SerializedName("Name")
private String name;
@Expose
@SerializedName("Email")
private String email;
etc...
}
有什么想法吗?
答案 0 :(得分:1)
在doProfileApiCall()方法而不是.getObjectSingle中使用
.getJSONArraySingle(ProfileList.class)
现在使用以下代码创建一个新的类ProfileList.java。
List<Profile> profileList = new ArrayList<>();
public List<Profile> getProfileList() {
return profileList;
}
public void setProfileList(List<Profile> profileList) {
this.profileList = profileList;
}
将doProfileApiCall方法的返回类型更改为
public Single<ProfileList> doProfileApiCall()
每当您要访问数据时,将其使用列表位置0,以后再获取更多数据时,就可以对数据进行索引。
答案 1 :(得分:0)
通常,如果JSON
根对象是array
,则应在List
侧使用Java
。在您的情况下,您有array
,请使用相关方法:
return Rx2AndroidNetworking.post(ApiEndPoint.ENDPOINT_PROFILE)
.addHeaders(mApiHeader.getProtectedApiHeader())
.build()
.getObjectListSingle(Profile.class);
Rx2ANRequest
来源。