Parse.com拉数组数据

时间:2014-10-14 20:59:03

标签: android arrays arraylist parse-platform

我正在使用数组在Parse中建立朋友列表。我在用户表中解析数组时遇到问题。 Array Column

如何获取数组中的每个对象并显示它的值?

2 个答案:

答案 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**.

有关详细信息,请参阅以下链接:

ParseObject

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")来解决,我已经更新了代码,只是在对象列表为空时返回。