将 json 响应转换为字符串 android
Convert json response to string android
在我的应用程序中,我在 json 中从服务器获得一些响应,然后我必须从该响应中获得一些特定的字符串数据。正如我所知道的那样,为了我的目的使用 rxjava 对我来说会更好。首先,我在 gradle 中插入了一些依赖项,如下所示:
implementation 'io.reactivex.rxjava2:rxjava:2.1.9'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
但是据我所知,我必须将我的接口请求从调用更改为可观察的,但是在它之后我的接口不起作用。所以这个问题仍然悬而未决))无论如何我已经阅读了很多教程并且它们都使用了可观察的,但我希望如果没有它我可能会设法解决我的困难。
然后主要的问题是——我必须如何在我的主活动 class 中初始化我的转换器。我看到有时我们可以获得答案中的一些字段 class:
public class Post {
@SerializedName("username")
private String username;
@SerializedName("password")
private String password;
public Post(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
但我不需要从以下 class 中获取我的密码或用户名,我必须从我的响应中获取我的访问令牌,然后以编程方式将其插入我的 header 中。
我对Retrofit的初始化:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://server/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
无论如何感谢您的宝贵意见和回答,希望您能帮到我。
您可以像这样从字符串中获取数据:
public void onResponse(String response) {
System.out.println("---------------- Responce : " + response);
try{
JSONArray obj=new JSONArray(response);
for(int i=0;i<obj.length();i++) {
JSONObject jobj = obj.getJSONObject(i);
jobj.get("created_at").toString());
jobj.get("is_read").toString().equals("1"))
jobj.get("first_name").toString(),
jobj.get("last_name").toString(),
jobj.get("lastmsg").toString(),
jobj.get("profile_img").toString(),
jobj.get("online").toString(),
jobj.get("unread").toString()));
}catch (JSONException e){}
}
在我的应用程序中,我在 json 中从服务器获得一些响应,然后我必须从该响应中获得一些特定的字符串数据。正如我所知道的那样,为了我的目的使用 rxjava 对我来说会更好。首先,我在 gradle 中插入了一些依赖项,如下所示:
implementation 'io.reactivex.rxjava2:rxjava:2.1.9'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
但是据我所知,我必须将我的接口请求从调用更改为可观察的,但是在它之后我的接口不起作用。所以这个问题仍然悬而未决))无论如何我已经阅读了很多教程并且它们都使用了可观察的,但我希望如果没有它我可能会设法解决我的困难。 然后主要的问题是——我必须如何在我的主活动 class 中初始化我的转换器。我看到有时我们可以获得答案中的一些字段 class:
public class Post {
@SerializedName("username")
private String username;
@SerializedName("password")
private String password;
public Post(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
但我不需要从以下 class 中获取我的密码或用户名,我必须从我的响应中获取我的访问令牌,然后以编程方式将其插入我的 header 中。 我对Retrofit的初始化:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://server/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
无论如何感谢您的宝贵意见和回答,希望您能帮到我。
您可以像这样从字符串中获取数据:
public void onResponse(String response) {
System.out.println("---------------- Responce : " + response);
try{
JSONArray obj=new JSONArray(response);
for(int i=0;i<obj.length();i++) {
JSONObject jobj = obj.getJSONObject(i);
jobj.get("created_at").toString());
jobj.get("is_read").toString().equals("1"))
jobj.get("first_name").toString(),
jobj.get("last_name").toString(),
jobj.get("lastmsg").toString(),
jobj.get("profile_img").toString(),
jobj.get("online").toString(),
jobj.get("unread").toString()));
}catch (JSONException e){}
}