Android:获取Object

时间:2018-07-06 08:46:50

标签: android arrays json object

我的代码是:

Object value = tasks.get(key);

结果value是:[{"name":"one","family":"yes"},{"name":"two","family":"no"}]

现在我想在foreach中获得value的孩子

foreach(...){
    String name = ...
    String family = ...
}

3 个答案:

答案 0 :(得分:3)

您的值采用JSONArray格式。

使用此:

JSONArray values = new JSONArray((String) tasks.get(key)); // or alternative task.getString(key)
for (int i = 0; i < values.length(); i++) {
  JSONObject entry = values.getJSONObject(i);
  String name = entry.getString("name");
  String family = entry.getString("family");
}

答案 1 :(得分:0)

对象本身不包含ig字段或其他内容,您必须创建pojo (只是您想要干净且可重用的代码),以便从中获取字段,例如,使用{ {1}}

添加依赖项:

Gson

添加pojo:

dependencies {
    implementation 'com.google.code.gson:gson:2.8.5'
}

转换:

public class Pojo{
   @SerializedName("name")
   @Expose
   private String name;
   @SerializedName("family")
   @Expose
   private String family;
}

答案 2 :(得分:0)

第1步:将Object实例转换为String

String response = (String) value;

步骤2:将String实例输入JsonArray

//don't forget to caught JSONException here
JsonArray array = new JsonArray(response);

步骤3: 遍历JsonArray并从每个JsonObject获取值

  for (int i = 0; i < array.length(); i++) {
           JSONObject object = array.getJSONObject(i);

           //get values here
           String name = object.getString("name");
           String family = object.getString("family");
        }

现在,整个代码应该像这样

 try {
        JSONArray array = new JSONArray("");
        for (int i = 0; i < array.length(); i++) {
           JSONObject object = array.getJSONObject(i);
           String name = object.getString("name");
           String family = object.getString("family");
        }
    } catch (JSONExceptione) {
      //do something..
    }

重要 如果您仍然不知道发生了什么,那么整个过程称为JSON解析。了解它。