Вот как я это сделал:
String photoEncodedString = "";
if (this.theBitmap != null) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
this.theBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();
photoEncodedString = Base64.encodeToString(bytes, Base64.DEFAULT);
}
String dataString = "[{";
dataString = dataString + "\"PhotoImage\": \"" + photoEncodedString + "\" ";
dataString = dataString + ",\"Name\": \"" + etYourName.getText().toString() + "\" ";
dataString = dataString + ",\"Email\": \"" + etEmail.getText().toString() + "\" ";
dataString = dataString + ",\"Comments\": \"" + tvCommentsValue.getText().toString() + "\" ";
dataString = dataString + "}]";
JSONObject jObj = new JSONObject(dataString);
Я думаю, что ваша ошибка .put связана с неправильным форматированием вашего JSON.У вас есть
{ "operation":"edit_profile",
"username":"frsyescd",
"password":"123Ch@rif",
"new_email":"",
"new_pdp":",pdp=cast('_9j_4AAQSkZJRgABAQAAAQABAAD
Там, где перед pdp = cast стоит запятая.
Также "new_pdp": "pdp = cast (" также не будет действительным JSON.
IЯ просто говорю, что это недопустимый JSON, поэтому он может вызвать ошибку где-то:
"new_pdp":",pdp=cast('_9j_4AAQSkZJRgABAQAAAQABAAD..._svmCveT8v
Вы не заканчиваете строку, основываясь на том, что вы опубликовали выше, вам нужно, чтобы она выглядела болеевот так, чтобы он был действительным JSON:
"new_pdp":"_9j_4AAQSkZJRgABAQAAAQABAAD..._svmCveT8v"
Вот снова мой код, но с нужным вам форматом JSON:
String photoEncodedString = "";
if (pdp != null) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
pdp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();
photoEncodedString = Base64.encodeToString(bytes, Base64.DEFAULT);
}
String dataString = "[{";
dataString = dataString + "\"operation\":\"edit_profile\" ";
dataString = dataString + ",\"username\":\"frsyescd\" ";
dataString = dataString + ",\"password\":\"123Ch@rif\" ";
dataString = dataString + ",\"new_pdp\":\"" + photoEncodedString + "\"";
dataString = dataString + "}]";
JSONObject jObj = new JSONObject(dataString);