我在parse.com的localdataStore上有一些文件(图像),我想从那里获取文件,我已经实现了以下代码......
ParseQuery<ParseObject> query = ParseQuery.getQuery("Test_class");
query.whereEqualTo("objectId", "SSDW232sda");
query.fromLocalDatastore();
try{
List<ParseObject> objects = queryChild.find();
System.out.println(objects.size());
ParseObject object = objects.get(0);
JSONArray imagesArr = object.getJSONArray("images");
for(int i=0;i<imagesArr.length();i++){
try {
ParseFile image = (ParseFile) imagesArr.getJSONObject(i).get("name");//.getParseFile("name");
byte[] img = image.getData();
bitmaps.add(BitmapFactory.decodeByteArray(img , 0, img.length));
} catch (ParseException e1) {
e1.printStackTrace();
System.out.println("could not get image");
}
}
}catch(Exception e) {
e.printStackTrace();
}
但它会出现以下错误
java.lang.ClassCastException: java.lang.String cannot be cast to com.parse.ParseFile
帮我解决这个问题..
答案 0 :(得分:1)
这是JSON的规范。那里没有ParseFile
个对象。
您可能希望从JSON获取String
,将其转换为字节数组,然后调用ParseFile
构造函数。
实施例
String stringFromJson = json.getString("whatever_key_you_need");
byte[] stringFromJsonAsByteArray = stringFromJson.getBytes();
ParseFile parseFile = new ParseFile("filename.txt", stringFromJsonAsByteArray);