リクエストリクエストのpostからコミットされたJSON形式のデータを取得し、beanに変換

1507 ワード

プロジェクトはインタラクティブな過程で、一般的にjsonフォーマットを用いてデータの伝送を行う.いくつかのエンティティbeanをjsonフォーマットに変換する必要があり、jsonフォーマットをbeanに変換する必要がある.次はツールクラスで、ユーザーjson列とjava beanの間で相互に変換されます.
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オブジェクトを取得する場合は、自分の項目に従ってそのオブジェクトを取得する必要がある.