如何在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对象数组
如何在 TypeScript Angular 2 中将 Json 对象数组映射到另一个普通 json 对象