リクエストリクエストのpostからコミットされたJSON形式のデータを取得し、beanに変換
1507 ワード
プロジェクトはインタラクティブな過程で、一般的にjsonフォーマットを用いてデータの伝送を行う.いくつかのエンティティbeanをjsonフォーマットに変換する必要があり、jsonフォーマットをbeanに変換する必要がある.次はツールクラスで、ユーザーjson列とjava beanの間で相互に変換されます.
次にリクエストクラスを受信し、postリクエストデータのJson形式のデータ列を取得し、Java Beanに変換する.
もちろん、上記でrequestオブジェクトを取得する場合は、自分の項目に従ってそのオブジェクトを取得する必要がある.
import org.codehaus.jackson.map.ObjectMapper;
import java.io.IOException;
public class JsonUtil {
private static final ObjectMapper objectMapper = new ObjectMapper();
public static T convertJsonToBean(String json,Class cls){
try {
return objectMapper.readValue(json,cls);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static String convertBeanToJson(T t){
try {
return objectMapper.writeValueAsString(t);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
次にリクエストクラスを受信し、postリクエストデータのJson形式のデータ列を取得し、Java Beanに変換する.
// post Json
BufferedReader streamReader = new BufferedReader( new InputStreamReader(this.request.getInputStream(), "UTF-8"));
StringBuilder responseStrBuilder = new StringBuilder();
String inputStr;
while ((inputStr = streamReader.readLine()) != null) {
responseStrBuilder.append(inputStr);
}
String jsonData = responseStrBuilder.toString();
// bean
RequestDTO request = JsonUtil.convertJsonToBean(jsonData.toString(), RequestDTO.class);
もちろん、上記でrequestオブジェクトを取得する場合は、自分の項目に従ってそのオブジェクトを取得する必要がある.