Android 将json响应转换为字符串

Android 将json响应转换为字符串,android,rx-java,retrofit2,rx-android,Android,Rx Java,Retrofit2,Rx 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:

在我的应用程序中,我从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'
但据我所知,我必须将我的接口请求从call更改为observable,然而在这之后,我的接口就不能工作了。所以这个问题仍然是开放的。)无论如何,我已经阅读了很多教程,它们都使用了observable,但我希望没有它,我可能会设法解决我的困难。 然后主要的问题是-如何在mainactivity类中初始化转换器。我看到有时候我们可以得到答案课上的一些字段:

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;
    }
}
但是我不需要从下面的类中获取密码或用户名,我必须从响应中获取访问令牌,然后以编程方式将其插入头中。 我的改装初始化:

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){}
public void onResponse(字符串响应){
System.out.println(“--------------响应:+响应);
试一试{
JSONArray obj=新JSONArray(响应);

对于(int i=0;ii如果您对RxJava感到不舒服,那么可以使用改型来进行网络调用并获取数据,我想这非常简单。您可以使用带有改型的GSONConverter来解析JSON对象,请看一看(您已经使用带有@SerializedName注释的GSON库,您只需要添加改型的转换器)我已经更新了我的问题,正如您所看到的,我已经添加了这样的转换器,但我不明白如何从我的response中获取任何字符串数据?从json响应到string,或者从string?您可以通过toString()方法强制转换json变量