Android 将ParseFile添加到JSONObject
在这种方法中,我试图保存从相机捕获的图像(当前保存为位图),并希望将图像属性添加到我的JSONObjectAndroid 将ParseFile添加到JSONObject,android,json,image-uploading,Android,Json,Image Uploading,在这种方法中,我试图保存从相机捕获的图像(当前保存为位图),并希望将图像属性添加到我的JSONObjectnewItem。然后将newItem添加到作为JSONArray的myReportsmyReports然后被放入键下的ParseObject“myReports”中,我调用saveInBackground()。但是,问题是,当我查看数据库时,没有显示带有picture属性的JSONObject。是否尝试检查服务器端接收的请求对象?抱歉,我不明白你的意思,当你通过HTTP从客户机向服务器发送请
newItem
。然后将newItem
添加到作为JSONArray的myReports
<代码>myReports然后被放入键下的ParseObject“myReports”
中,我调用saveInBackground()
。但是,问题是,当我查看数据库时,没有显示带有picture属性的JSONObject。是否尝试检查服务器端接收的请求对象?抱歉,我不明白你的意思,当你通过HTTP从客户机向服务器发送请求时,你实际上可以看到收到了什么数据。根据您使用的服务器软件,将有一个检查数据的解决方案。要执行@JJD所说的,您需要设置云代码。然后,您可以监视pic.png的保存前和保存后发生的情况。我猜文件太大了,因为我记得col条目被限制为128kb(ParseFile条目除外)。我想我应该重构到一个解决方案,只需创建一个指向保存图像的行的指针,而不是myReports
private void savePicture() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.PNG, 100, stream);
final ParseFile file = new ParseFile("pic.png", stream.toByteArray());
file.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e != null) {
Toast.makeText(GenerateReportActivity.this,
"Couldn't save image", Toast.LENGTH_LONG);
} else {
try {
newItem.put("image", file);
myReports.put(newItem);
} catch (JSONException ex) {
Utility.showMessage(ex.getMessage(),
"JSON ERROR PICTURE", GenerateReportActivity.this);
}
}
}
});
imgTakenPhoto.setImageBitmap(null);
imgTakenPhoto.destroyDrawingCache();
}