DataInputStream rd = new DataInputStream(request.getInputStream());
JsonObject json = new JsonObject();
上のコードはサーバー用です。サーバーは入力ストリームを取得し、このストリームを JsonObject に割り当てたいと考えています。この「rd」を「json」に割り当てるにはどうすればよいですか?
DataInputStream rd = new DataInputStream(request.getInputStream());
JsonObject json = new JsonObject();
上のコードはサーバー用です。サーバーは入力ストリームを取得し、このストリームを JsonObject に割り当てたいと考えています。この「rd」を「json」に割り当てるにはどうすればよいですか?
入力ストリームを文字列に変換します
public static String convertStreamToString(InputStream is) throws IOException {
if (is != null) {
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try {
Reader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} catch (Exception e) {
Log.getStackTraceString(e);
} finally {
is.close();
}
return writer.toString();
} else {
return "";
}
}
たとえば、pojo クラスを使用してオブジェクトにストリームします。
public class PageInfo {
private String pageName;
private String pageContent;
public String getPageName() {
return pageName;
}
public void setPageName(String pageName) {
this.pageName = pageName;
}
public String getColorCode() {
return colorCode;
}
public void setColorCode(String colorCode) {
this.colorCode = colorCode;
}
}
文字列をオブジェクトに変換する Mapper クラス
public Vector<PageInfo> getPageInfo(Cursor cursor) {
Vector<PageInfo> pageInfo = new Vector<PageInfo>();
// Column Index
int pageContent;
if (cursor != null) {
if (cursor.moveToFirst()) {
do {
PageInfo info = new PageInfo();
pageContent = cursor.getColumnIndex(TablePageInfo.PAGE_CONTENT);
colorCode = cursor.getColumnIndex(TablePageInfo.COLOR_CODE);
bookMark = cursor.getColumnIndex(TablePageInfo.BOOK_MARK);
info.setPageContent(cursor.getString(pageContent));
pageInfo.add(info);
} while (cursor.moveToNext());
}
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
return pageInfo;
}
GSON Jar を追加し、以下のコードを記述して、任意のオブジェクトを取得し、完全な JSON を返します。
package common;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
//Generics is used so any class type can be passed
public class GsonSerializer<T> {
public T Deserialize(String json, Class classOfT) {
Gson gn = new GsonBuilder().create();
return (T) gn.fromJson(json, classOfT);
}
public String Serialize(T object) {
Gson gn = new GsonBuilder().create();
return gn.toJson(object);
}
}
詳細については、私のブログを参照してください。
http://lifeasanandroiddeveloper.blogspot.kr/2011/11/how-to-serialize-and-desearilize-json.html
に変換してから に変換しString
ますJSONObject
。
StringWriter writer = new StringWriter();
IOUtils.copy(request.getInputStream(), writer, encoding);
String theString = writer.toString();
JSONObject json = new JSONObject(theString);
詳細についてはIOUtils
、こちらをご覧ください。
IOUtils
クラスを含むjarを取得するには、こちらをご覧ください