【问题标题】:How to convert json object from json array to string array in android如何在android中将json对象从json数组转换为字符串数组
【发布时间】:2020-06-27 09:14:04
【问题描述】:

我的 JSON 是

[
  {
    "Heading": "Heading 1"
  },
  {
    "Heading": "Heading 2"
  },
  {
    "Heading": "Heading 3"
  }
]

我想把这个数组转换成

String heading[]={"Heading 1","Heading 2","Heading 3"};

我正在使用改造来加载 jsonarray。这个json链接是http://www.mocky.io/v2/5e6f3b37330000a11df077ce

【问题讨论】:

  • 这样你就可以使用像gson这样的库来把它转换成java代码然后你就可以去从类中获取密钥了

标签: android arrays json arraylist


【解决方案1】:

只是在api接口处让它返回ArrayList

@GET("http://www.mocky.io/v2/{itemId}")
Call<ArrayList<Item>> getItem(@Path("itemId") String id)

或者如果您使用的是 RxJava,请更改为

@GET("http://www.mocky.io/v2/{itemId}")
Single<ArrayList<Item>> getItem(@Path("itemId") String id)

Class Item{
  private String Heading;
  //add the getters and setters
}

【讨论】:

    【解决方案2】:

    使用此代码解决您的问题。

    public void getItemList(String id)
        {
            ApiConfig config = RetrofitClient.getRetrofitInstance().create(ApiConfig.class);
            Call<List<ItemsModel>> call = config.getItmeList(id);
    
            call.enqueue(new Callback<List<ItemsModel>>() {
                @SuppressLint("SetTextI18n")
                @Override
                public void onResponse(@NonNull Call<List<ItemsModel>> call, @NonNull Response<List<ItemsModel>> response) {
                    if (response.isSuccessful()) { // response is successful
                        if(response.body() != null)
                        {
                            String[] items = response.body().toArray(new String[0]);//this is string array
                        }
                    }
                }
    
                @Override
                public void onFailure(@NonNull Call<List<ItemsModel>> call, @NonNull Throwable t) {
                    Log.d("errorResponse", Objects.requireNonNull(t.getMessage()));
                }
            });
    
        }
    

    项目pojo类

    public class ItemsModel
    {
        @SerializedName("heading")
        private String heading;
    
    
        public String getHeading() {
            return heading;
        }
    
        public void setHeading(String heading) {
            this.heading = heading;
        }
    }
    

    界面

    @GET("http://www.mocky.io/v2/{itemId}")
        Call<List<ItemsModel>> getItmeList(@Path("itemId") String id)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      相关资源
      最近更新 更多