json에 이미지를 포함시켜서 저장하고 싶습니다.
조회수 9457회
public void EnollmentUser() {
JSONObject mDataJO = new JSONObject();
String adress = etmapname.getText().toString();
String adress_descript = etadress.getText().toString();
String roomInfo = etroomInfo.getText().toString();
String described = etdescribed.getText().toString();
int deposit = Integer.parseInt(etPrice.getText().toString());
int monthly_rent = Integer.parseInt(etmonthly_rent.getText().toString());
int acreage = Integer.parseInt(etacreage.getText().toString());
try {
mDataJO.put("adress",adress);
mDataJO.put("adress_descript",adress_descript);
mDataJO.put("deposit",deposit);
mDataJO.put("roomInfo",roomInfo);
mDataJO.put("described",described);
mDataJO.put("monthly_rent",monthly_rent);
mDataJO.put("acreage",acreage);
Log.e("dh","server req:\n"+mDataJO.toString());
} catch (JSONException e) {
e.printStackTrace();
}
안드로이드를 배운지 별로안된 학생입니다. 지금 json을 찾으면서 공부해보고있는데요. 코드의 값처럼 이미지도 입력을 하고싶습니다. 이미지를 코드처럼 하려면 어떻게 쓰고 작성해야하나요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
이미지 전송은 이미지를 바이트 배열로 변환 후 이 데이터를 Base64 문자열로 인코딩 한 다음 JSON의 value로 전달하면 됩니다. (말이 조금 복잡한데, 아래 코드를 보는 것이 이해가 더 빠를 수 있을 것 같습니다.)
관련 코드는 아래 함수를 참고하시면 됩니다. (출서 - http://stackoverflow.com/a/30824334/3275152)
private String getStringFromBitmap(Bitmap bitmapPicture) { String encodedImage; ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream(); bitmapPicture.compress(Bitmap.CompressFormat.PNG, 100, byteArrayBitmapStream); byte[] b = byteArrayBitmapStream.toByteArray(); encodedImage = Base64.encodeToString(b, Base64.DEFAULT); return encodedImage; }
위 함수에서 반환된 문자열을
mDataJO.put("adress",adress);
처럼 사용하시면 되고요. 링크로 남긴 스택오버플로우를 보시면 역변환하는 방법도 있으니 필요하다면 확인해보세요.-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력