如何在android中将json对象从json数组转换为字符串数组

Posted

技术标签:

【中文标题】如何在android中将json对象从json数组转换为字符串数组【英文标题】:How to convert json object from json array to string array in android 【发布时间】: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代码然后你就可以去从类中获取密钥了 【参考方案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)

【讨论】:

以上是关于如何在android中将json对象从json数组转换为字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中将 JSON 转换为类似于 android 的 POJO(对象)

在Javascript中将JSON字符串转换为JSON对象数组

如何在android中将HashMap转换为json数组?

如何在 TypeScript Angular 2 中将 Json 对象数组映射到另一个普通 json 对象

如何仅将一些选定的 Json 数组和 Json 对象从 Url 解析到 android 设备

如何在Nodejs中将json对象数组转换为String?