当对象键为数字时如何创建 Java getter 和 setter

2023-12-27

我无法创建 Java Getters 和 Setters,因为我得到了对象键的数字(数字)。 我将向您展示我的 API 响应。如何在不更改 API 的情况下实现这一目标?

    {"api_status": true,
    "message": "",
     "data": {
        "0": {
          "id": "aaa",
          "name": "aaa",
          "address": "aaa",
          "category": "aaa",
          "open_24_hours": "aaa",
          "business_open": "",
          "business_close": "",
          "type": "0",
          "title": null,
          "latitude": "6.8729428",
          "longitude": "79.8689013",
          "city": "",
          "distance": "2.95555089735992"
           },
       "1": {
          "id": "bbb",
           "name": "bbb",
           "address": "bbb",
           "category": "bbb",
           "open_24_hours": "bbb",
           "business_open": "",
           "business_close": "",
           "type": "0",
           "title": null,
           "latitude": "6.8767581",
           "longitude": "79.8674747",
           "city": "",
           "distance": "2.915385898910569"
         },
   }
  }

使用下面的类并将其与您的 json 数据和类作为模型传递给 GSON 库。你将得到你的模型,每个数据项都与哈希表映射,其中键是你的数字,我将其表示为字符串通过迭代哈希映射,你将得到 keySet,它是 json 数据键中的所有键。对于每个键,您都可以获得 itemData。

class JsonStructure{
public boolean api_status;
public String message
HashMap<String,ItemsData> data;
}


class ItemsData{
public String id;
public String name;
public String address;
public String category;
public String open_24_hours;
public String business_open;
public String business_close;
public String type;
public String title;
public String latitude;
public String longitude;
public String city;
public String distance;

}

用于改造构建

BuildRetrofit(){
 mOkHttpClient = new OkHttpClient.Builder()
                 .addInterceptor(interceptor)
                .connectTimeout(30, TimeUnit.SECONDS)
                .readTimeout(30, TimeUnit.SECONDS)
                .build();
        mConverterFactory = GsonConverterFactory.create();
    String baseUrl = "http://dev.appslanka.com/";
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(baseUrl)
                .client(mOkHttpClient)
                .addConverterFactory(mConverterFactory)
                .build();
        mApi = retrofit.create(ApiInterface.class);
        }   

在ApiInterface中定义yoyr请求方法

interface ApiInterface{

  @GET("_test/placeInDistance/")
Call<JsonStructure> getResponseForApiCall();
}

现在将此方法称为改进调用结构:

Call<JsonStructure> call = mApi.getResponseForApiCall();
        Response<JsonStructure> response = call.execute();

解析此响应如下:

HashMap<String, ItemsData> map = response .data;
            Set<String> s = map.keySet();
            Iterator<String> i = s.iterator();
            while (i.hasNext()){
                String key = i.next();
                ItemsData data = map.get(key);
                String id = data.id;
                String name = data.name;
                String address = data.address;
                String category = data.category;
                String open24Hr = data.open_24_hours;
                String businessOpen = data.business_open;
                String close = data.business_close;
                String latitue = data.latitude;
                ..... etc

            }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当对象键为数字时如何创建 Java getter 和 setter 的相关文章

随机推荐