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を取得するには、こちらをご覧ください