0

我因此而生气。我正在使用 Parse.com 来处理我的后端,并且我必须调用一个 Cloud Code 函数来给出这个“结构”:

{ "idShop":"asdf", "idCostumer":"zxcv", "selection": [
    {"idOffer":"product1", "quantity":3 }, 
    {"idOffer":"product2", "quantity":1 } 
] }

如果我使用 curl 效果很好,但是我不知道如何使用 Android 来实现。因此,想法是将数组放入 JSON 值中。

我试图将所有信息放入一个 String 和一个 HashMap 数组中,但没有得到任何结果。

任何想法??

感谢您的帮助!:)


苏尼尔回答后:

这就是我正在做的,但不起作用:

HashMap<String, String [] > params = new HashMap<String, String []>();
                params.put("idCostumer", new String[]{costumerId});
                params.put("idShop", new String[]{idShop});


                OfferListItem item;
                ArrayList<String> selectionList = new ArrayList<String>();

                for(int i=0; i<offerList.size();i++){                   
                    item = offerList.get(i);
                    if (item.getClicks()>0){    
                        selectionList.add("\"idOffer\":"+item.getId()+", "+"\"quantity\":"+item.getClicks());                       
                    }
                }
                String [] selection = new String [selectionList.size()];
                for (int i=0;i<selection.length;i++) {
                    selection[i]=selectionList.get(i);
                }

                params.put("selection", selection);
4

3 回答 3

2

根据Parse 的 Android 指南,用于数组的正确数据类型是JSONArray. 尝试使用JSONArray代替String [].

于 2013-08-23T15:05:10.170 回答
1

这可能会迟到,但试试这个。在您的云代码中,使用 2 个数组变量。第一个将用于构建您的数组对象,第二个用于构建“ArrayList”,因此假设您要返回一个课程数组列表,并且每个学生都获得了 3 名学生的分数,您最终会得到这样的结果。

-云代码

studentMarks={};

courses=[ ];

For(int i=0;i<3;i++)

{

studentMarks={stud1:3,stud2:10,stud3:45}

courses.push(studentMarks);

}

response.success(课程)

- 然后在你的 Android 代码中传递一个 Object 类型的 ArrayList

public void done(ArrayList<Object> courses, ParseException e) {

// cast the course to a HashMap

HashMap<String,Object> object= (HashMap<String,Object>)courses.get(0);

int stud1 = (Integer) object.get("stud1");                      

}
于 2014-06-12T12:27:52.160 回答
1

试试这种方式,用这种方式将String数组放入hashmap

 HashMap subjects = new HashMap<String, String[]>();
    subjects.put("calculus",new String[] {"math","logic"});
    subjects.put("chemisty",new String[] {"ions","electrons"});
    subjects.put("biology",new String[] {"life","bacteria"});
    for(String s:subjects.get("biology")){
        System.out.println(s);
    }
于 2013-08-23T09:17:44.970 回答