programing

HttpServletRequest에서 JSON 오브젝트 리터럴 취득

telecom 2023. 3. 11. 08:37
반응형

HttpServletRequest에서 JSON 오브젝트 리터럴 취득

서블릿에 게시된 오브젝트 리터럴을 추출해야 하는 코드를 쓰고 있습니다.HttpServletRequest 객체에 대한 API를 연구했지만 JSON 객체가 웹 페이지의 폼 요소에서 게시되지 않기 때문에 요청에서 JSON 객체를 꺼내는 방법은 명확하지 않습니다.

어떤 통찰이라도 감사합니다.

감사해요.

당신 이것을 찾고 있나요?

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    StringBuilder sb = new StringBuilder();
    BufferedReader reader = request.getReader();
    try {
        String line;
        while ((line = reader.readLine()) != null) {
            sb.append(line).append('\n');
        }
    } finally {
        reader.close();
    }
    System.out.println(sb.toString());
}

이것은 요청 데이터를 가져오는 간단한 방법입니다.HttpServletRequestJava 8 Stream API 사용:

String requestData = request.getReader().lines().collect(Collectors.joining());

잭슨 JSON 프로세서를 활용하다

 ObjectMapper mapper = new ObjectMapper();
  Book book = mapper.readValue(request.getInputStream(),Book.class);

가장 쉬운 방법은 Reader 객체에서 콩을 채우는 것입니다.이는 한 번의 호출로 실행할 수 있습니다.

BufferedReader reader = request.getReader();
Gson gson = new Gson();

MyBean myBean = gson.fromJson(reader, MyBean.class);

다른 방법이 있습니다.org.apache.commons.io.IOUtils요청에서 문자열을 추출하다

String jsonString = IOUtils.toString(request.getInputStream());

그럼 네가 원하는 건 뭐든 할 수 있어JSON또는 다른 오브젝트Gson,기타.

JSONObject json = new JSONObject(jsonString);
MyObject myObject = new Gson().fromJson(jsonString, MyObject.class);

요청 본문에서 데이터를 가져오려는 경우 위의 코드가 작동합니다.하지만 너도 나와 같은 문제를 겪고 있는 것 같아.

본문의 데이터가 JSON 형식이고 Java 개체로 사용하려면 직접 해석하거나 google-gson과 같은 라이브러리를 사용하여 처리해야 합니다.프로젝트 웹사이트에서 문서와 예시를 보고 사용법을 알아야 합니다.그것은 상당히 쉬워요.

검색된 데이터를 요청 개체에서 json 개체로 변환하는 방법은 다음과 같습니다.

Gson gson = new Gson();
ABCClass c1 = gson.fromJson(data, ABCClass.class);

//ABC class is a class whose strcuture matches to the data variable retrieved

언급URL : https://stackoverflow.com/questions/1548782/retrieving-json-object-literal-from-httpservletrequest

반응형