首页 > 解决方案 > 将json响应转换为字符串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'

但是据我所知,我必须将我的接口请求从调用更改为可观察的,但是在它之后我的接口不起作用。所以这个问题仍然悬而未决))无论如何我已经阅读了很多教程并且它们都使用了可观察的,但我希望也许没有它我会设法解决我的困难。然后主要问题是 - 我必须如何在我的 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();

无论如何,感谢您的有用意见和回答,希望您能帮助我。

标签: androidrx-javaretrofit2rx-android

解决方案


您可以像这样从 String 获取数据:

                   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){}

}


推荐阅读