首页 > 解决方案 > 获取具有非固定键的对象的属性

问题描述

假设我从 webservice 得到这个 JSon 响应:

{
    "id":13,
    "name":"Alireza",
    "required_id":"14",
    "all_friends_id_and_name":{
        "28":"Hassan",
        "21":"Mohammad",
        "68":"Ali",
        "14":"Taha",
        "96":"Darya"
    }
}

在此响应required_id值中指定我需要一个 id 为 14 的朋友姓名,因此在all_friends_id_and_name对象中我应该获取“14”(Taha)的值并在我的应用程序中使用它。

我正在使用 retrofit2 和 gson 库。

如何获取具有非固定键的对象的属性?

标签: androidjsongsonretrofit2

解决方案


对于本机方法,您可以尝试使用Iterator .

迭代器是一个对象,它使程序员能够遍历容器,尤其是列表。

 "all_friends_id_and_name":{
        "28":"Hassan",
        "21":"Mohammad",
        "68":"Ali",
        "14":"Taha",
        "96":"Darya"
    }

对于上述部分,您LOGIC

     JSONObject jsonData = new JSONObject("Json_response");
          Iterator  iteratorObj = jsonData .keys();
           while (iteratorObj.hasNext())
            {
                String str_json_Key = (String)iteratorObj.next();
                 // Print=28,21....96
             }

推荐阅读