質問編集履歴

2

訂正

2015/10/10 07:19

投稿

GH_usami13
GH_usami13

スコア24

test CHANGED
File without changes
test CHANGED
@@ -94,6 +94,8 @@
94
94
 
95
95
  【訂正】
96
96
 
97
+
98
+
97
99
  Android側から送られてきたJSONをサーブレットで受信して
98
100
 
99
101
  画像データ(byte[])を取得するときに

1

質問訂正

2015/10/10 07:19

投稿

GH_usami13
GH_usami13

スコア24

test CHANGED
File without changes
test CHANGED
@@ -87,3 +87,75 @@
87
87
  おかしな点がございましたら、
88
88
 
89
89
  お力添えのほど、よろしくお願い致します。
90
+
91
+
92
+
93
+ ---
94
+
95
+ 【訂正】
96
+
97
+ Android側から送られてきたJSONをサーブレットで受信して
98
+
99
+ 画像データ(byte[])を取得するときに
100
+
101
+ Stringとしてその後、byte[]に変換していましたが、
102
+
103
+ それですとおかしなことになりますね。
104
+
105
+ すみません。
106
+
107
+
108
+
109
+ なので、はじめから、byte[]で取得すべく、
110
+
111
+ ```java
112
+
113
+ BufferedReader bufferReaderBody = new BufferedReader(request.getReader());
114
+
115
+ String body = bufferReaderBody.readLine();
116
+
117
+
118
+
119
+ JSONObject jsonObject = JSONObject.fromObject(body);
120
+
121
+ byte[] binaryData = (byte[])jsonObject.get("image1");
122
+
123
+ ```
124
+
125
+ としましたが、
126
+
127
+ ```Java
128
+
129
+ "image1":"[B@✕✕✕✕✕✕✕✕"
130
+
131
+ ```
132
+
133
+ という形式で表記されているため、
134
+
135
+ ```java
136
+
137
+ byte[] binaryData = (byte[])jsonObject.get("image1");
138
+
139
+ ```
140
+
141
+ の段階で
142
+
143
+ ```java
144
+
145
+ java.lang.String cannot be cast to [B
146
+
147
+ ```
148
+
149
+ というエラーがでてしまいます。
150
+
151
+
152
+
153
+ [Bがbyte[]にキャストできないのは、わかるのですが、
154
+
155
+ それを回避して、
156
+
157
+ byte[]として値を取得する方法はありますでしょうか?
158
+
159
+
160
+
161
+ 何卒、よろしくお願い致します。