我正在使用数组在Parse中建立朋友列表。我在用户表中解析数组时遇到问题。
如何获取数组中的每个对象并显示它的值?
答案 0 :(得分:3)
当数组具有空值时,上述答案将终止应用程序。您必须检查该特定列的值是否为空。请参阅下面的代码
List<String> list11 = new ArrayList<String>();
ParseQuery<ParseObject> pQuery = ParseQuery.getQuery("TABLE NAME");
pQuery.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
if (e==null) {
if (list.size()>0) {
ParseObject p = list.get(0);
if (p.getList("friendsArray")!=null) {
list11 = p.getList("friendsArray");
}
else
{
list11= null;
}
}}
}
});
使用getList方法从解析表的数组列中获取数据
now if you want to get all individual data of parsed array ,you can simply apply looping on **list11**.
有关详细信息,请参阅以下链接:
How to fetch value from parse class containing Array type column of strings in android
答案 1 :(得分:0)
由于数组是指针,它们不包含任何数据,因此您需要通过执行以下操作来获取对象:
List<ParseObject> objects = user.getList("friendsArray");
if (objects == null)
return;
ParseObject.fetchAllIfNeededInBackground(objects, new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e != null) {
Log.e(TAG, e.getMessage(), e);
return;
}
// friends are each filled with data
}
});
正如userAndroid正确提到的,如果'friendsArray'中没有值,它可能会返回null:
如果没有这样的键或者无法将值转换为List
,则返回null
这可以通过检查密钥是否存在user.has("friendsArray")
来解决,我已经更新了代码,只是在对象列表为空时返回。